一、連結管理器
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)