我 已经 阅读了有关蓝图的官方 Flask 文档,甚至一两篇关于使用它们的博客文章。
我什至在我的网络应用程序中使用过它们,但我并不完全理解它们是什么,也不完全理解它们如何融入我的应用程序。它与我的应用程序实例有何相似但不完全相似?文档很全面,但我寻求外行的解释或启发性的类比来为我激发它。当一位同事让我向他们解释我选择在这里询问的 Flask 蓝图时,我感到非常困惑。
蓝图是用于生成 Web 应用程序“部分”的模板。你可以把它想象成一个模具:
您可以获取蓝图并将其应用到您的应用程序的多个位置。每次应用它时,蓝图都会在应用程序的石膏中创建其结构的新版本。
# An example 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)
这是一个处理树木的简单模型——它表示任何处理树木的应用程序都应该提供对其叶子、根和环的访问(按年份)。就其本身而言,它是一个空壳——它无法路由,也无法响应,直到它被应用到应用程序上:
from tree_workshop import tree_mold 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函数在应用程序上“留下深刻印象”——这将在应用程序上的蓝图模型“留下深刻印象”指定的位置url_prefix。
register_blueprint
url_prefix