blueprint 是用来结构化flask中的功能模块。
主要目的就是使项目结构能清晰便于维护。
目录结构如下
flask_project
|__ app.py
|__ views
|__ __init__.py
|__ user.py
先说init.py 这个文件,内容为空。但是必须存在,因为views目录要当作一个 python包 被别的程序引用。所以必须有,但是可以不为空,我为了方便设置为空。
user.py 看做一个功能模块类,用户相关的操作都可以写在这个里面,看下代码。
from flask import Blueprint
# 导入 Flask 中的蓝图 Blueprint 模块
user_blue = Blueprint("user", __name__)
# 实例化一个蓝图(Blueprint)对象
#下面是路由和实现useradd功能
@user.route('/useradd')
def useradd():
return 'useradd'
app.py 代码
from flask import Flask
from flask import Blueprint
from views import user
#导入views目录中的user.py ,blueprint 功能类
app = Flask(__name__)
app.register_blueprint(user.user_blue)
#在Flask对象中注册蓝图模块中的蓝图对象 user 中的 user
if __name__ == '__main__':
app.run(debug=Ture, host='0.0.0.0', port=5000)
这个重点说下 app.register_blueprint()
一定要写成 app.register_blueprint(user.user_blue)
意思是,注册user文件里的user_blue 这个蓝图。百度内容里面很多都不写点后面的东西。导致启动后访问不到页面 404错误。
下面这个是flask官网上的例子
bp = Blueprint('auth', __name__, url_prefix='/auth')
app.register_blueprint(auth.bp)
参考:
https://dormousehole.readthedocs.io/en/latest/tutorial/views.html
网友评论