文章目录
显示
一、链接管理器
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()
可以看到url_for
可以将函数的名称转化为url的地址
。
創建2个Python
文件夹:
创建UrlManager.py
管理类用作链接的管理:
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)
二、版本管理
每次将开发代码发布到服务器时,不管是后端代码和前端代码都有版本的概念,浏览器本身有缓存的机制
,如果静态文件不加特殊的标识,前端的静态文件是无法再次获取的。用户看到的仍是缓存的文件,用户看到的不是你看到的。所以才需要版本管理。
每次发布都有一个版本号, 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)
這就是版本管理和鏈接管理統一的必要性。