Python全棧:flask的blueprint藍圖使用
發(fā)布時間:2021-11-23 點擊數(shù):702
Flask的 app 和 Blueprint藍圖 就好比 Django 的project 和 app, 可以使應(yīng)用模塊化
flask最小框架
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
定義藍圖
# api/main.py from flask import Blueprint app_api = Blueprint(name="app_api", import_name=__name__) @app_api.route("/") def show(): return "<h1>hello world app_api<h1>"
注冊藍圖
在最小框架中修改
# run.py from flask import Flask # 引入藍圖文件 from demo.api.main import app_api app = Flask(__name__) @app.route('/') def hello_world(): return '<h1>Hello World! index<h1>' # 注冊藍圖 app.register_blueprint(blueprint=app_api, url_prefix='/api') if __name__ == '__main__': app.run(host="127.0.0.1", port=5002)
訪問測試:
http://127.0.0.1:5002/ -》 Hello World! index
http://127.0.0.1:5002/api/ -》 hello world app_api
so eazy!!!
靜態(tài)文件和模板文件
在定義藍圖中修改
app_api = Blueprint(name="app_api", import_name=__name__, static_folder='static', # 靜態(tài)文件 template_folder='templates' # 模板文件夾 )
重定向
run.py 文件中修改
@app.route('/hello') def hello(): return redirect(url_for("app_api.hello_world"))
404
run.py 文件中修改
@app.errorhandler(404) def page_not_found(e): return "<h1>404<h1>"