2016-04-27 18 views
-1

私のフラスコのプロジェクトでは、私は複数のurl_prefix -esのために再利用したい青写真を持っています。しかし、青写真は異なったurl_prefix-esで動作するはずです。フラスコの構成可能な青写真

私は青写真オブジェクトとcurrent_blueprintグローバル変数のようなものを設定するには、どのような方法を見つけられませんでしたので、私は複数のアプローチと考えられてきました:

  1. 代わりの青写真異なるコンフィグを持つアプリで
  2. アイソ様々なロジックを使用ビューは、青写真の見解でURLプレフィックスのadd_url_rule -s
  3. チェックの異なるセットを持つ青写真オブジェクトを作成し、
動作が異なります

ここでどのアプローチをとるべきですか?

答えて

0

私は、あなたが「異なる振る舞い」によって何を意味するかを正確に知りませんが、あなたは一般的なロジックを特定することができれば、あなたはこれを使用することができます。if文をやって

# In your blueprint file 
def get_blueprint(param): 
    blueprint = Blueprint('my blueprint', __name__) 

    @blueprint.route('/') 
    def index(): 
     return "This is a common page." 

    if param == 'a': 
     @blueprint.route('/param') 
     def param(): 
      return "This is the param a!" 
    elif param == 'b': 
     @blueprint.route('/param') 
     def param(): 
      return "This is the param b!" 

    return blueprint 

# In your app 
app = Flask(__name__) 
app.register_blueprint(get_blueprint('a'), url_prefix='/param/a') 
app.register_blueprint(get_blueprint('b'), url_prefix='/param/b') 

この方法で、あなたは避けることができますurlをチェックするリクエストごとに

+0

青写真が '@blueprint.route'を実行しているときにたくさんの動きがある場合、これは私のポイント#2です。' get_blueprint'が非常に巨大になります – sashab

関連する問題