java blueprint_blueprint(蓝本/蓝图)学习笔记
在按《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 . 我们可以通过蓝本有效地组织项目
java blueprint_blueprint(蓝本/蓝图)学习笔记相关推荐
- 零基础学习Java开发,这些学习笔记送给你
因为Java具备很多特点,并且在企业中被广泛应用为此很多小伙伴选择学习Java基础开发,但是零基础学习Java技术开发需要我们制定Java学习路线图对于我们之后的学习会非常有帮助. 零基础学习Java ...
- Java 8 函数式编程学习笔记
Java 8 函数式编程学习笔记 @(JAVASE)[java8, 函数式编程, lambda] Java 8 函数式编程学习笔记 参考内容 Java 8中重要的函数接口 扩展函数接口 常用的流操作 ...
- 【Java】函数式编程学习笔记——Stream流
学习视频:https://www.bilibili.com/video/BV1Gh41187uR?p=1 (1)[Java]函数式编程学习笔记--Lambda表达式 (2)[Java]函数式编程学习笔 ...
- java 编程思想 多线程学习笔记
java 编程思想 多线程学习笔记 一.如何创建多线程? 1.继承 java.lang.Thread 类 2.实现 java.lang.Runnable 接口 3.Callable接口 总之,在任何线 ...
- JAVA基础与高级学习笔记
JAVA基础与高级学习笔记 /记录java基础与高级,除了较简单的内容,没有必要记录的没有记录外,其余的都记录了/ java初学者看这一篇就够了,全文 6万+ 字. JAVA基础 java会出现内存溢 ...
- 第10课:底实战详解使用Java开发Spark程序学习笔记
第10课:底实战详解使用Java开发Spark程序学习笔记 本期内容: 1. 为什么要使用Java? 2. 使用Java开发Spark实战 3. 使用Java开发Spark的Local和Cluster ...
- Java并发编程艺术学习笔记(五)
Java并发编程艺术学习笔记(五) Java并发容器和框架 Java为开发者也提供了许多开发容器和框架,可以从每节的原理分析来学习其中精妙的并发程序. 一.ConcurrentHashMap的实现原理 ...
- 《Java编程思想》学习笔记【一对象导论】
重头学习Java,大一没怎么学,大二上课也没听.(流下不学无术的眼泪) 所有编程语言都提供抽象机制,我们所能解决的问题的复杂性直接取决于抽象的类型和质量. 汇编语言是对底层机器的轻微抽象," ...
- Java之GUI编程学习笔记六 —— AWT相关(画笔paint、鼠标监听事件、模拟画图工具)
Java之GUI编程学习笔记六 -- AWT相关(画笔paint) 参考教程B站狂神https://www.bilibili.com/video/BV1DJ411B75F 了解paint Frame自 ...
最新文章
- BZOJ-1008 越狱
- python按键_【python】python控制鼠标和键盘
- Kubernetes 也有局限性吗?
- 30行python代码设计_30行Python代码实现3D数据可视化
- php正则表达式2,php正则表达式基本语法(2)
- 【软件分析与挖掘】An Empirical Study of Bugs in Build Process
- springboot中通过cors协议解决跨域问题
- html5 绘制思维导图,Qunee组件制作思维导图
- linux 编译libvlc,linux mint debian 下交叉编译libvlc 记录
- 华为计算机系统叫什么,华为MateBook操作系统是什么
- MT管理器破解COC辅助
- 考察一名UI设计师的能力素质模型(转)
- c语言中ANSI标准的关键字,C语言中32个关键字详解
- 4 数据可视化大屏 - 布局: BootStrap 之网格Grid
- Ubuntu还需要做什么才能替代Windows
- vue 使用Computed实现数据的动态计算
- 向量化执行引擎是怎么玩的?
- 程序员求职面试三部曲之一:选择合适的工作单位(转)
- JDK8新特性01-Lambda表达式
- Latex中如何加粗字体 如何打出圆圈序号
热门文章
- #地形剖面图_七年级上册微课 | 地图:地形剖面图与分层设色地形图
- oracle ns,RAC到单实例SWITCHOVER
- android高德地图设置经纬度,安卓高德地图开发自定义线路规划(按着自己定义的经纬度规划线路)...
- [专栏精选]Unity中的Git最佳实践
- Unity3d中使用百度语音识别及语音合成【含源码】
- (五)如何训练和测试AI语言翻译系统
- .NET Core:通过Web API进行微服务交互
- Linux 桌面进化史
- Apache 回应:参与开源不受 EAR 约束
- 如何处理“转换数据类型错误”错误?