Flask中的蓝图
2017-10-14 11:03
183 查看
原文:https://stackoverflow.com/questions/24420857/what-are-flask-blueprints-exactly
蓝图的汉语意思:
用感光后变成蓝色或其他颜色的感光纸制成的图纸。供工程设计施工或编绘地图等用。(来自 http://cidian.xpcha.com/28d668gajnz.html)
显然,人们可以根据蓝图来建造大厦,桥梁等工程建筑。
回到Flask框架中,蓝图是一种模板,程序可以依据其生成“一段”web应用。其本质等同于一个模板:
开发者可以在应用的不同地方使用蓝图技术。每当你使用这个方法时,蓝图会依据应用的模板创建一个新的版本——–这就如同我们要做许多金属工艺品(上图右侧的物品),可以先做出一个样品的石膏模板,然后根据这个模板来浇筑生成物品。
这是一个简单的树的模板例子,任何应用可以访问树的叶子,根,年轮。其本身是一个模板,不可以处理路由,响应客户端,除非注册到一个flask应用上:
可以应用register_blueprint方法将tree_mold蓝本注册到flask应用上。url_prefix设置特定的蓝图的路由。
例如我们想访问tree_mold的叶子,可以通过hostname:port/ash/leaves 来访问。
附录:
1.完整代码如下:
app.py
tree_mold.py
2.程序运行结果如下:
蓝图的汉语意思:
用感光后变成蓝色或其他颜色的感光纸制成的图纸。供工程设计施工或编绘地图等用。(来自 http://cidian.xpcha.com/28d668gajnz.html)
显然,人们可以根据蓝图来建造大厦,桥梁等工程建筑。
回到Flask框架中,蓝图是一种模板,程序可以依据其生成“一段”web应用。其本质等同于一个模板:
开发者可以在应用的不同地方使用蓝图技术。每当你使用这个方法时,蓝图会依据应用的模板创建一个新的版本——–这就如同我们要做许多金属工艺品(上图右侧的物品),可以先做出一个样品的石膏模板,然后根据这个模板来浇筑生成物品。
# An example from flask import Blueprint #生成一个蓝图,蓝图名为mold tree_mold = Blueprint("mold", __name__)mold # 配置tree_mold的特定路由 def leaves(): @tree_mold.route("/leaves") return "This tree has leaves" @tree_mold.route("/roots") def roots(): return "And roots as well" @tree_mold.route("/rings") @tree_mold.route("/rings/<int:year>") def rings(year=None): return "Looking at the rings for {year}".format(year=year)
这是一个简单的树的模板例子,任何应用可以访问树的叶子,根,年轮。其本身是一个模板,不可以处理路由,响应客户端,除非注册到一个flask应用上:
from tree_workshop import tree_mold #注册蓝图到app上,并设定特定的前缀 app.register_blueprint(tree_mold, url_prefix="/oak") app.register_blueprint(tree_mold, url_prefix="/fir") app.register_blueprint(tree_mold, url_prefix="/ash")
可以应用register_blueprint方法将tree_mold蓝本注册到flask应用上。url_prefix设置特定的蓝图的路由。
例如我们想访问tree_mold的叶子,可以通过hostname:port/ash/leaves 来访问。
附录:
1.完整代码如下:
app.py
#app.py from tree_mold import tree_mold from flask import Flask from flask import Flask app = Flask(__name__) app.register_blueprint(tree_mold, url_prefix="/oak") app.register_blueprint(tree_mold, url_prefix="/fir") app.register_blueprint(tree_mold, url_prefix="/ash") if __name__ == '__main__': app.run()
tree_mold.py
#tree_mold.py from flask import Blueprint tree_mold = Blueprint("mold", __name__) @tree_mold.route("/leaves") def leaves(): return "This tree has leaves" @tree_mold.route("/roots") def roots(): return "And roots as well" @tree_mold.route("/rings") @tree_mold.route("/rings/<int:year>") def rings(year=None): return "Looking at the rings for {year}".format(year=year)
2.程序运行结果如下:
相关文章推荐
- flask多蓝图模板目录冲突解决
- 用 Flask 来写个轻博客 (17) — MV(C)_应用蓝图来重构项目
- Flask-响应、调度方法和蓝图
- Flask blueprint蓝图按功能模块化架构实例 推荐
- flask蓝图(Blueprint)简单测试例子运行不成功的原因:注册时机不对
- Flask多蓝图模板目录冲突解决
- [py]flask蓝图的使用
- Flask框架响应、调度方法和蓝图操作实例分析
- flask (blueprint)蓝图
- flask蓝图的使用
- flask蓝图理解
- flask 蓝图
- flask蓝图的使用
- flask蓝图的使用
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化
- flask之使用蓝图构建项目
- flask 中的蓝图 blueprint 的理解
- Flask 蓝图(Blueprint)
- Flask学习(3)蓝图学习
- Flask蓝图遇到的问题