flask之藍圖系統


藍圖

對程序進行目錄結構划分

不使用藍圖,自己分文件

目錄結構:

-templates
-views
	-__init__.py
    -user.py
    -order.py
-app.py

app.py

from views import app
if __name__ == '__main__':
    app.run()

init.py

from flask import Flask,request
app = Flask(__name__)
#不導入這個不行
from . import account
from . import order
from . import user

user.py

from . import app
@app.route('/user')
def user():
    return 'user'

order.py

from . import app
@app.route('/order')
def order():
    return 'order'

使用藍圖之中小型系統

詳見代碼:pro_flask_簡單應用程序目錄示例.zip

目錄結構:

-flask_pro
	-flask_test
    	-__init__.py
    	-static
        -templates
        -views
        	-order.py
            -user.py
     -manage.py 
        

_init.py

from flask import  Flask
app=Flask(__name__)
from flask_test.views import user
from flask_test.views import order
app.register_blueprint(user.us)	# 注冊應用對象到藍圖中
app.register_blueprint(order.ord)	# 注冊應用對象到藍圖中

manage.py

from flask_test import  app
if __name__ == '__main__':
    app.run(port=8008)

user.py

from flask import Blueprint, url_for
us=Blueprint('user',__name__)	# 給藍圖對象取別名,用於反向解析

@us.route('/login')
def login():
    print(url_for("user"))	# 根據藍圖對象別名來進行反向解析
    return 'login'

order.py

from flask import Blueprint
ord=Blueprint('order',__name__)	# 給藍圖對象取別名,用於反向解析

@ord.route('/test')
def test():
    return 'order test'

總結:

1 xxx = Blueprint('account', name,url_prefix='/xxx') :藍圖URL前綴,表示url的前綴,在該藍圖下所有url都加前綴

2 xxx = Blueprint('account', name,url_prefix='/xxx',template_folder='tpls'):給當前藍圖單獨使用templates,向上查找,當前找不到,會找總templates

3 藍圖的befort_request,對當前藍圖有效

4 大型項目,可以模擬出類似於django中app的概念


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM