Flask Blueprint蓝图

蓝图在Flask中用于组织和模块化视图函数,创建子app并设置url_prefix、template_folder和static_folder。通过注册蓝图,可以避免循环引用错误,使项目结构清晰。例如,在user.py中定义了一个蓝图user_bp,处理'/user/personal'路由。在主app中注册蓝图后,使用url_for时需指定模块名。
摘要由CSDN通过智能技术生成

概述

  1. 蓝图的作用:对视图函数进行分门别类即模块化 ,使项目结构更加清晰,方便管理。
  2. 蓝图相当于子app,所用的函数和主app类似。
  3. 如果不用蓝图,分离视图函数在不同页面,用主app注册,会出现循环引用错误。

user.py 用户模块,导入Blueprint,实例化一个蓝图对象

from flask import Blueprint

# 1. url_prefix & static_folder & template_folder为可选参数。
# 2. 不定义template_folder,默认去主app配置的模板目录下查找模板(一般为templates);
# 3. 如果定义了template_folder,且template_folder与templates的模板文件重名,优先使用templates的模板文件。
# 4. static_folder用法和template_folder类似。
# 5. 项目不大的话,尽量用主app默认的template_folder和static_folder。
user_bp = Blueprint('user', __name__, url_prefix='/user',template_folder='user_templates', static_folder='user_static')  

@user_bp.route('/personal')
def personal():
    return 'This is a personal central page'

在主app文件中注册蓝图

from flask import Flask
from views.user import user_bp
app = Flask(__name__, template_folder='templates',static_folder='static')  #  template_folder和static_folder为可选参数
app.register_blueprint(user_bp)

使用url_for()跳转到相应的蓝图时,需加上模块名称。

url_for('user.personal')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值