随着功能的添加,路由越来越多,view层的拆分变成了刚需
方式
- 模块
Module
- 蓝图
Blueprint
实现
Module
开始是通过Module来实现,但是运行时收到Flask的提示Module已经被摒弃,建议通过Blueprint来实现,就不在多说,留个Git上别人的实例Module
Blueprint
- 创建蓝图和路由(
errors.py
)
from flask import Blueprint
# 创建蓝图
err = Blueprint('err', __name__)
# 404
@err.app_errorhandler(404)
def page_not_found(e):
return render_template('404.html'), 404
# test
@err.route('/nimei', methods=['POST', 'GET'])
def nimei():
return 'nimei'
- 注册蓝图(
__init__.py
)
应用初始化的时候注册蓝图
from errors import err
# 注册蓝图
app.register_blueprint(err)
# 附加前缀
# app.register_blueprint(err, url_prefix='/err')
- 外部引用(
view.py
)
@app.route('/secret')
@login_required
def secret():
return redirect(url_for('err.nimei'))
Blueprint还有很多其他的功能比如动态URL前缀等,详情Flask文档