天天看点

Python flask实战订餐系统微信小程序-10链接管理器和链接管理器的初步实现

一、链接管理器

​url_for​

链接统一管理的好处:当项目庞大的时候,使用统一管理应对变更的能力就会更强。

from flask import Flask, url_for
app = Flask(__name__)

@app.route('/')
def hello_world():
    url = url_for("index")
    return 'Hello World' + url

@app.route('/api')
def index():
    return  'Index Page'

@app.route('/api/hello')
def hello():
    return  'Hello World'

if __name__ == '__main__':
    app.run()      
Python flask实战订餐系统微信小程序-10链接管理器和链接管理器的初步实现

可以看到​

​url_for​

​​可以​

​将函数的名称转化为url的地址​

​。

創建2个​

​Python​

​文件夹:

Python flask实战订餐系统微信小程序-10链接管理器和链接管理器的初步实现

创建​

​UrlManager.py​

​管理类用作链接的管理:

Python flask实战订餐系统微信小程序-10链接管理器和链接管理器的初步实现
class UrlManager(object):
    @staticmethod
    def buildUrl(path):
        return path

    @staticmethod
    def buildStaticUrl(path):
        return path

          

引入

from flask import Flask, url_for
from common.libs import UrlManager
# from xuhss import route_xuhss
app = Flask(__name__)
# app.register_blueprint(route_xuhss, url_prefix="/xuhss")

@app.route('/')
def hello_world():
    url = url_for("index")
    url_1 = UrlManager.UrlManager.buildUrl("/api")
    return "Hello World,url:%s,url1:%s" % (url, url_1)      
Python flask实战订餐系统微信小程序-10链接管理器和链接管理器的初步实现

二、版本管理

每次将开发代码发布到服务器时,不管是后端代码和前端代码都有版本的概念,浏览器本身有缓存的机制

,如果静态文件不加特殊的标识,前端的静态文件是无法再次获取的。用户看到的仍是缓存的文件,用户看到的不是你看到的。所以才需要版本管理。

每次发布都有一个版本号, 202207121900、202207122000

每一次无论是通过后端的头部,希望知道用户返回的是哪个版本,并且静态文件可以同时获取,所以我们会在静态文件后面加上version字段:

class UrlManager(object):
    @staticmethod
    def buildUrl(path):
        return path

    @staticmethod
    def buildStaticUrl(path):
        path = path + "?ver=" + "202207121900"
        return UrlManager.buildUrl(path)      

调用:

from flask import Flask, url_for
from common.libs import UrlManager
app = Flask(__name__)

@app.route('/')
def hello_world():
    url = url_for("index")
    url_1 = UrlManager.UrlManager.buildUrl("/api")
    url_2 = UrlManager.UrlManager.buildStaticUrl("/css/bootstrap.css")
    return "Hello World,url:%s,url1:%s,url2:%s" % (url, url_1, url_2)      

继续阅读