蓝图

1、为使项目结构模块化,更加清晰,把相同模块的视图函数放在同一个蓝图中,同一个文件中

2、创建蓝图
1、新建一个py文件目录,文件名:blueprints
新建py文件(user.py等),放置相同模块的视图函数,
user.py:

from flask import Blueprint
user_bp = Blueprint('user',name)
@user_bp.route('/login',methods=['GET','POST'])
def login():
pass

   2、主app文件注册蓝图
        app.regist_blueprint(蓝图的名称)

         如: app.register_blueprint(user_bp)

注意:
要想在url上也显示出是在同一个模块中,加上一个参数:
url_prefix

如:user_bp = Blueprint('user',name,url_prefix='/user')
这样的话,user下面的登录,注册等视图函数的url就成了
127.0.0.1:5000/user/login
127.0.0.1:5000/user/regist

3、蓝图中模板文件查找

user_bp = Blueprint('user',name,url_prefix='/user',template_folder='usertemp')
template_folder模板文件存放的文件夹(自定义的),相对于当前py文件所在的目录下。没定义的话,默认原项目中的templates文件夹中寻找
顺序是:先项目中默认的template,然后再到自定的模板文件夹中寻找

4、蓝图中静态文件查找
user_bp = Blueprint('user',name,url_prefix='/user',template_folder='usertemp',static_folder='userstatic')

如果想在模板文件中引用蓝图中的静态文件,蓝图名称.static

不加蓝图名称的话,默认加载原项目中static文件中的静态文件

5、url_for反转
1、要指定蓝图的名称
user_bp = Blueprint('user',name,url_prefix='/user',template_folder='usertemp',static_folder='userstatic')

你可能感兴趣的:(蓝图)