web-dev-qa-db-ja.com

Flaskブループリントとは何ですか?

Ihaveread 公式Flaskドキュメント ブループリントと one または two 使用に関するブログ投稿。

私は自分のWebアプリでもそれらを使用しましたが、それらが何であるか、またはアプリ全体にどのように適合するかを完全には理解していません。アプリのインスタンスに似ていますが、まったく似ていませんか?ドキュメントは包括的ですが、私はそれをsparkに素人の説明または啓発的な類推を求めます。ここで尋ねることを選んだ同僚にFlask青写真を説明するように頼まれたとき、私は十分に困惑しました。

145
JoshieSimmons

ブループリントは、Webアプリケーションの「セクション」を生成するためのテンプレートです。あなたはそれを型と考えることができます:

A medallion mold with a gold medallion freshly removed from it

ブループリントを取得して、それを複数の場所でアプリケーションに適用できます。それを適用するたびに、設計図はアプリケーションの石膏にその構造の新しいバージョンを作成します。

# 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で指定された場所でアプリケーションの設計図の型を「印象づけ」ます。

240
Sean Vieira