Flask初学者:蓝图Blueprint
程序员文章站
2022-10-23 08:45:43
蓝图这个名字好像就是根据单词Blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指Blueprint。 使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可以更加方便的开发和维护 ......
蓝图这个名字好像就是根据单词blueprint字面意思来,跟平常我们理解的蓝图完全挂不上钩,这里蓝图就是指blueprint。
使用蓝图的好处是可以将不同功能作用的视图函数/类视图放到不同的模块中,可以更加方便的开发和维护
- 导入blueprint:from flask import blueprint
- 创建一个蓝图:例如user_bp = blueprint(‘user’, __name__, prefix=’/user’),第一参数指定蓝图名称,第二个参数与flask中的使用是相同的(用于指定静态文件的相对路径,也方便其他三方插件报错时定位问题),第三个参数prefix为这个蓝图指定url前缀,这个前缀会和视图函数/类视图指定的url直接连接起来形成一个有效的url
- 视图函数:也是和flask的使用一样,使用对应的route装饰器即可
- 注册蓝图:使用方法app.register_blueprint(user_bp)即可
- html模板查找规则:如果创建蓝图时,第二个参数使用的是__name__,那么默认的模板文件路径就是项目根目录下的templates文件夹(flask实例化时的__name__),如果不想使用这个templates文件夹,可以在实例化blueprint时指定template_folder参数,那么此时模板文件的查找顺序就是先在templates文件夹中查找,查找不到时,就会在蓝图文件同级目下template_folder参数指定的文件夹(blueprint实例化时的__name__)中查找
- 静态文件查找规则:如果创建蓝图时,如果第二个参数使用的是__name__,那么,在使用url_for(‘static’, filename=xxx)时,就只会在项目根目录的static文件夹中查找,如果使用url_for(‘user.static’, filename=xxx)就会在蓝图创建时static_folder参数指定的文件夹中查找
- url_for反转:反转获取蓝图中的url时,必须加上蓝图名称的前缀,即便是就在该蓝图模块中使用url_for,也要加上蓝图的名称,例如url_for(‘blue_name.viewfunc_name’)
- 子域名:在创建蓝图的时候可以使用subdomain参数指定子域名,需要注意的是具体的ip地址和localhost是不能有子域名的
上一篇: 一些幽默俏皮话
下一篇: 谁能想到,对520恋恋不舍的竟然是段儿友