flask-Blueprint

蓝图就是把app的各个路由整合,或者说把这个app切分成块,它实现了MVC中的controller的功能。
接下来的例子是模拟了一个场景:
如果我们需要向自己的网站添加一个blog的模块,这样我们就可以把所有和bolg相关的路由全部放到一起,而不会影响到其他的模块

blog_blueprint = Blueprint(
    'blog', # 定义蓝图名称
    __name__, # 传入包名
    template_folder='templates/blog', # 定义蓝图渲染的文件路径
    url_prefix="/blog" # 将这个前缀之间添加在蓝图的路由之前
)

替换app.route为blog_blueprint.route

@blog_blueprint.route('/user/<string:username>')
def user(username):
    user = User.query.filter_by(username=username).first_or_404() # 根据username获得username
    posts = user.posts.order_by(Post.publish_date.desc()).all() # 获得username对应的post按降序排列
    recent, top_tags = sidebar_data()

由于我们在‘blog’的蓝图中添加了user路由,所以现在发生的改变是
user的路由从/user/<string:username> 变成了1./blog/user/<string:username>
2.静态文件的路径也从templates/ 变成了templates/blog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值