Flask-Blueprint

2488 ワード

blueprintは異なる機能のmoduleを分離します.アプリケーションをモジュール化し、大規模なアプリケーションに対応できます.青写真の基本概念:青写真がアプリケーションに登録された後、実行する操作の集合.要求を割り当てると、Flaskは青写真とビュー関数を関連付け、2つのエンドポイントの前のURLを生成します.例えばrunは1つしかありませんpy.一部の機能は複数の人が別々に書く必要があり、一部の機能は交錯する可能性があり、コードの位置も一緒にいないため、いくつかのモジュール(機能)を青写真で開閉することができ、マクロ定義と似ているが、挿抜可能なアプリケーションではなく、アプリケーションに登録できる操作であり、複数回登録することができる.あるいは、単純な滴は、結合を低減し、モジュール多重化率を向上させる必要がある.たとえば,開発環境とアプリケーション環境の違いは,青写真で環境を切り替えることができる.青写真の欠点は、アプリケーションが作成されると、アプリケーションオブジェクト全体を破棄してこそ青写真をログアウトできることです.次に、最も簡単な例を示します.
├── my_flasky
     ├── app
          ├── __init__.py
          └── main
              ├── __init__.py
              └── views.py
     └── manage.py

==================================================================
my_flasky/app/__init__.py
    #encoding:utf8
    from flask import Flask
    def create_app():
        app = Flask(__name__)
        # /main/__init__.py     ,     
        from .main import main as main_blueprint
        app.register_blueprint(main_blueprint)
        return app

=================================================

my_flasky/app/main/__init__.py
    #encoding:utf8
    from flask import Blueprint

    main = Blueprint('main',__name__) #main     ,__name__           

    #       main       ,         
    from . import views
=================================================================

my_flasky/app/main/views.py

    #encoding:utf8

    from . import main #    

    @main.route('/')
    def index():
            return '

' ==================================================================== my_flasky/manage.py #encoding:utf8 from app import create_app app = create_app() if __name__ == '__main__': app.run(host='0.0.0.0',port=80,debug=True)

この例では、以下のコードと同様に機能する最も簡単なflask例を実装します.
#encoding:utf8
from flask import Flask

app = Flask(__name__)
def index():
    return '

' if __name__ == '__main__': app.run()

これは確かに簡単ではありませんが、どうして上のフォーマットに書くのですか.簡単な例では見えないかもしれませんが、少し複雑なflaskアプリケーションは一人でできるものではないに違いありません.だから、分業が必要です.一人で一つを担当します.Blueprintはそれらを組み立て、モジュール化管理を実現します.flaskをマスターするには迂回できません.インプリメンテーション・プロシージャ(例1):1、ビュー・モジュールが存在するパッケージ(main)内にブルーブックを作成し、すべてのビュー・モジュール(views.py)をインポートします.2,ビューモジュールパッケージを格納するディレクトリの下(app)にcreate_を構築するapp関数は、関数にブルーブックの登録を完了し、複数登録することができます.3ルートディレクトリ(my_flasky)で2で作成した関数を呼び出して起動スクリプト(manage.py)を作成します.多分そうですpy(複数可)—>main(複数可)—>app(1個のみ)—>manage.py