Python Flask.Blueprint
簡單
Blueprint可用來設置route,專案只要一大,整個api或是web的route就會跟著複雜。總不可能把所有的route都設置在同一支程式上,這樣子對整個專案的維護性過低。
不過如果你只有一個api的話…記得就放同一支就好了!
範例
主程式# __init__.py
from flask import Flask
from manu import testRoute
app = Flask('__name__')
app.register_blueprint(testRoute)
if __name__ == '__main__':
app.run(debug=True)
生產用route# manu.py
from flask import Blueprint
testRoute = Blueprint('testRoute', __name__)
@testRoute.route('/manu/manu1') # 路由上標名了生產
def testroute():
return '<h1>You win!</h1>'
@testRoute.route('/manu/manu2') # 路由上標名了生產
def testroute2():
return '<h1>You win2!</h1>'
@testRoute.route('/manu/manu3') # 路由上標名了生產
def testroute3():
return '<h1>You win3!</h1>'
連結網址http://127.0.0.1:5000/manu/manu1
加上前綴
你要建構的是一個讓很多route可以清楚分開交通網是吧。這是一個生產用的route,以後會有財務、業務…等,沒錯吧!
所以我們希望這個路由是區隔而且明確的。
可是你不可能吃飽閒閒每一個路由都寫著’/manu/xxx’,’/manu/yyy/’…
太不科學了,所以我們就會需要用到url_prefix了!
註冊url_prefix有兩個方式,一個是在產生Blueprint物件的時候給,一個是在註冊的時候給!
# 產生物件的時候
testRoute = Blueprint('testRoute', __name__, url_prefix='/manu')
# 註冊blueprint的時候
app.register_blueprint(testRoute, url_prefix='/manu')
基本上,原廠建議是在註冊的時候再給,日後好維護。範例
要來調整一下我們的程式…# __init__.py
from flask import Flask
from manu import testRoute
app = Flask('__name__')
app.register_blueprint(testRoute, url_prefix='/manu')
if __name__ == '__main__':
app.run(debug=True)
from flask import Blueprint
testRoute = Blueprint('testRoute', __name__)
@testRoute.route('/manu1') # 路由拿掉剛才標上的生產
def testroute():
return '<h1>You win!</h1>'
@testRoute.route('/manu2') # 路由拿掉剛才標上的生產
def testroute2():
return '<h1>You win2!</h1>'
@testRoute.route('/manu3') # 路由拿掉剛才標上的生產
def testroute3():
return '<h1>You win3!</h1>'
連結網址http://127.0.0.1:5000/manu/manu2
這樣,程式碼是不是優美多了!
沒有留言:
張貼留言