0
点赞
收藏
分享

微信扫一扫

Python全栈:flask的blueprint蓝图使用


Flask的 app 和 Blueprint蓝图 就好比 Django 的project 和 app, 可以使应用​​模块化​

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!!!

静态文件和模板文件

在定义蓝图中修改

app_api = Blueprint(name="app_api", import_name=__name__,
static_folder='static', # 静态文件
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>"


参考文章:
​​使用蓝图的模块化应用​​




举报

相关推荐

0 条评论