java blueprint_blueprint(蓝本/蓝图)学习笔记

本文探讨了Flask Web开发中蓝本的真正优势,包括模块化组织、URL前缀和资源集中管理。通过《Explore Flask》的视角,指出了《FlaskWeb开发》中可能的遗漏,并强调了蓝本在项目结构、模板过滤器和功能区划分上的作用。
摘要由CSDN通过智能技术生成

在按《Flask Web开发:基于Python的Web应用开发实战》实践的过程中,我一直有一个疑问,即蓝本的优势在哪里

按照书中的操作,我们从一开始的做的

app = Flask(__name__)

@app.route(path)

def XXX

return OOO

似乎只是变成了

app = Flask(__name__)

main = Blueprint('main',__name__)

app.register_blueprint(main)

@main.route(path)

def XXX

return OOO

按FLask官方的说法,蓝本可以很好地帮助你简化工作,但我只感觉多了几个步骤,没能体会到其好处

于是昨天再去调查,才了解到蓝本的正确使用方法

《Explore Flask》中文翻译 蓝本给了我很大启发,看完之后,我认为《Flask Web开发》可以补充两点内容:

1. 组织(网站)项目的两种架构

书里的auth蓝本,负责登录等相关功能,也有专门的url前缀,所以它即是功能式,也是分区式

对没有web开发经验的读者,不容易自行领悟这两种架构,最好能提到一下

2. 蓝本的重要功能 - 可通过蓝图提供模板过滤器、静态文件、模板和其它功能

书中创建了/auth文件夹,auth蓝本位于此文件夹里

但作者没有为auth蓝本配置template_folder参数,而是解释了该蓝本对应的templdate文件夹所在位置,即/template/auth

这点很让人困惑,不管auth蓝本是功能式还是分区式,其相关资源应该被尽可能集中到一起,这点恰恰是蓝本的设计初衷和优势

我觉得更好的做法是创建/auth/template文件夹,并在通过template_folder参数,定义蓝本的相关资源的所在位置

最后,总结一下

1 . 通常蓝本是指继承Blueprint的那个对象,很多时候也指代Flask中这种设计思路

2 . 蓝图的基本设想是它们记录注册到一个应用时的操作执行情况。 当从一个端点到另一端分发请求和生成 URL 时,Flask 关联视图函数和蓝图。 -摘自官网

3 . 蓝图定义了可用于单个应用的视图,模板,静态文件等等的集合 -摘自《Explore Flask》中文翻译

4 . 我们可以通过蓝本有效地组织项目

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值