flask青写真について
第一選択:flask青写真は何ですか?
flaskが実行するwebプログラムの実行は、オブジェクトappをインスタンス化する.run()を実行すると、1つに表示されます.pyファイルには多くのビュー関数が定義されている.すなわち、コード管理が不便であり、後期のメンテナンスにも不利である.そのためflaskには青写真(Blueprint)が現れ、djangoのモジュールのように独立してプログラミングすることができます.では、この青写真(Blueprint)がこの機能を実現しました.簡単に言えば、Blueprintは、このBlueprintがアプリケーションに登録された後に呼び出される操作方法を格納するコンテナであり、Flaskは、BlueprintによってURLを整理し、要求を処理することができる.FlaskはBlueprintを使用してアプリケーションをモジュール化します.
Flaskでは、Blueprintには次の属性があります.
1つのアプリケーションが複数のBlueprintを有することができ、1つのモジュールが複数のBlueprintを使用されていない任意のURLの下に登録することができ、例えば「/」、「/sample」またはサブドメイン名があるアプリケーションでは、1つのモジュールが複数のBlueprintを登録することができ、独自のテンプレート、静的ファイル、または他の汎用的な操作方法を単独で有することができる.アプリケーションのビューと関数を実装する必要はありません.アプリケーションを初期化するときは、使用する必要があるBlueprintを登録する必要がありますが、Blueprintはアプリケーションとは独立して実行することはできません.アプリケーションに登録する必要があります.
運用メカニズム
青写真は、将来アプリケーションオブジェクト上で実行可能な一連の操作を保存します.登録ルーティングは、アプリケーションオブジェクト上でroute装飾器を呼び出してルーティングを登録すると、オブジェクトのurl_を変更する操作です.mapルーティングテーブルしかし、青写真オブジェクトにはルーティングテーブルがまったくなく、青写真オブジェクト上でroute装飾器を呼び出してルーティングを登録すると、内部の遅延操作記録リストdefered_functionsには、アプリケーションオブジェクトを実行するregister_という項目が追加されています.blueprint()メソッドの場合、オブジェクトは青写真オブジェクトのdefered_から適用されます.functionsリストから各項目を取り出し、自身をパラメータとして匿名関数、すなわちアプリケーションオブジェクトのadd_を呼び出すurl_rule()メソッドは、アプリケーションオブジェクトのルーティングテーブルを本当に変更します.
青写真のurl接頭辞
アプリケーションオブジェクトに青写真を登録するとurl_を指定できます.prefixキーワードパラメータ(このパラメータのデフォルトは/)最終ルーティングテーブルurl_を適用するmapでは、青写真に登録されたルーティングURLに自動的にこの接頭辞が付加され、これは、青写真を登録するときに異なる青写真を異なるセルフパスに接続すれば、最終的に競合を起こさずに複数の青写真に同じURL規則を使用することを保証することができる.
静的ルーティングの登録
適用オブジェクトとは異なり、青写真オブジェクトの作成時に静的ディレクトリのルーティングはデフォルトで登録されません.作成時にstatic_を指定する必要があります.folderパラメータ.次の例では、青写真がディレクトリの下にあるstatic_を示します.adminディレクトリを静的ディレクトリに設定
これで/admin/static_を使用できますadmin/アクセスstatic_adminディレクトリの下の静的ファイルカスタマイズ静的ディレクトリURLルール:青写真オブジェクトの作成時にstatic_を使用できますurl_pathは静的ディレクトリのルーティングを変更します.次の例はstatic_です.adminフォルダのルーティングは/libに設定されています
テンプレートディレクトリの設定
青写真オブジェクトのデフォルトのテンプレートディレクトリはシステムのテンプレートディレクトリで、青写真オブジェクトを作成するときにtemplate_を使用できます.folderキーワードパラメータ設定テンプレートディレクトリ
注意:templatesに存在する場合とmy_templates同じ名前のファイルを使用すると、templatesのファイルが優先されます.templatesディレクトリが同じ名前の場合、パスで区別する必要があります.たとえば、次のようにします.
my_templatesは2つ存在し、adminディレクトリの下のmy_を使用するとtemplatesディレクトリは、次の方法で登録する必要があります.
flaskが実行するwebプログラムの実行は、オブジェクトappをインスタンス化する.run()を実行すると、1つに表示されます.pyファイルには多くのビュー関数が定義されている.すなわち、コード管理が不便であり、後期のメンテナンスにも不利である.そのためflaskには青写真(Blueprint)が現れ、djangoのモジュールのように独立してプログラミングすることができます.では、この青写真(Blueprint)がこの機能を実現しました.簡単に言えば、Blueprintは、このBlueprintがアプリケーションに登録された後に呼び出される操作方法を格納するコンテナであり、Flaskは、BlueprintによってURLを整理し、要求を処理することができる.FlaskはBlueprintを使用してアプリケーションをモジュール化します.
Flaskでは、Blueprintには次の属性があります.
1つのアプリケーションが複数のBlueprintを有することができ、1つのモジュールが複数のBlueprintを使用されていない任意のURLの下に登録することができ、例えば「/」、「/sample」またはサブドメイン名があるアプリケーションでは、1つのモジュールが複数のBlueprintを登録することができ、独自のテンプレート、静的ファイル、または他の汎用的な操作方法を単独で有することができる.アプリケーションのビューと関数を実装する必要はありません.アプリケーションを初期化するときは、使用する必要があるBlueprintを登録する必要がありますが、Blueprintはアプリケーションとは独立して実行することはできません.アプリケーションに登録する必要があります.
運用メカニズム
青写真は、将来アプリケーションオブジェクト上で実行可能な一連の操作を保存します.登録ルーティングは、アプリケーションオブジェクト上でroute装飾器を呼び出してルーティングを登録すると、オブジェクトのurl_を変更する操作です.mapルーティングテーブルしかし、青写真オブジェクトにはルーティングテーブルがまったくなく、青写真オブジェクト上でroute装飾器を呼び出してルーティングを登録すると、内部の遅延操作記録リストdefered_functionsには、アプリケーションオブジェクトを実行するregister_という項目が追加されています.blueprint()メソッドの場合、オブジェクトは青写真オブジェクトのdefered_から適用されます.functionsリストから各項目を取り出し、自身をパラメータとして匿名関数、すなわちアプリケーションオブジェクトのadd_を呼び出すurl_rule()メソッドは、アプリケーションオブジェクトのルーティングテーブルを本当に変更します.
青写真のurl接頭辞
アプリケーションオブジェクトに青写真を登録するとurl_を指定できます.prefixキーワードパラメータ(このパラメータのデフォルトは/)最終ルーティングテーブルurl_を適用するmapでは、青写真に登録されたルーティングURLに自動的にこの接頭辞が付加され、これは、青写真を登録するときに異なる青写真を異なるセルフパスに接続すれば、最終的に競合を起こさずに複数の青写真に同じURL規則を使用することを保証することができる.
静的ルーティングの登録
適用オブジェクトとは異なり、青写真オブジェクトの作成時に静的ディレクトリのルーティングはデフォルトで登録されません.作成時にstatic_を指定する必要があります.folderパラメータ.次の例では、青写真がディレクトリの下にあるstatic_を示します.adminディレクトリを静的ディレクトリに設定
admin = Blueprint("admin",__name__,static_folder='static_admin')
app.register_blueprint(admin,url_prefix='/admin')
これで/admin/static_を使用できますadmin/アクセスstatic_adminディレクトリの下の静的ファイルカスタマイズ静的ディレクトリURLルール:青写真オブジェクトの作成時にstatic_を使用できますurl_pathは静的ディレクトリのルーティングを変更します.次の例はstatic_です.adminフォルダのルーティングは/libに設定されています
admin = Blueprint("admin",__name__,static_folder='static_admin',static_url_path='/lib')
app.register_blueprint(admin,url_prefix='/admin')
テンプレートディレクトリの設定
青写真オブジェクトのデフォルトのテンプレートディレクトリはシステムのテンプレートディレクトリで、青写真オブジェクトを作成するときにtemplate_を使用できます.folderキーワードパラメータ設定テンプレートディレクトリ
admin = Blueprint('admin',__name__,template_folder='my_templates')
注意:templatesに存在する場合とmy_templates同じ名前のファイルを使用すると、templatesのファイルが優先されます.templatesディレクトリが同じ名前の場合、パスで区別する必要があります.たとえば、次のようにします.
my_templatesは2つ存在し、adminディレクトリの下のmy_を使用するとtemplatesディレクトリは、次の方法で登録する必要があります.
admin = Blueprint('admin',__name__,template_folder='admin/my_templates')