小编典典

Flask 蓝图到底是什么?

all

已经 阅读了有关蓝图的官方 Flask
文档
,甚至两篇关于使用它们的博客文章。

我什至在我的网络应用程序中使用过它们,但我并不完全理解它们是什么,也不完全理解它们如何融入我的应用程序。它与我的应用程序实例有何相似但不完全相似?文档很全面,但我寻求外行的解释或启发性的类比来为我激发它。当一位同事让我向他们解释我选择在这里询问的
Flask 蓝图时,我感到非常困惑。


阅读 74

收藏
2022-06-18

共1个答案

小编典典

蓝图是用于生成 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

2022-06-18