0

a.example.com b.example.com 同じアプリケーション フォルダー、異なる構成ファイルを使用してフラスコに入れたい。次の解決策を見つけましたが、それらを使用するにはどうすればよいですか?


テンプレートに「request.host」を挿入し、それに応じて分岐するコンテキスト プロセッサを作成します。

さらに制御するには、現在のリクエストからインスタンス化された Site オブジェクトを作成し、それにプロパティを追加します。次に例を示します。

class Site(object):
  def __init__(self, request):
    self.host = request.host

  @cached_property
  def google_analytics_id(self, default=''):
    if self.host == 'python.example.com':
      return <something>
    elif self.host == 'apple.example.com':
      return <something else>
    return default

次に、コンテキスト プロセッサで site = Site(request) を使用し、site を参照します。あなたのテンプレートで。他のプロパティの候補は、HTML メタ記述とキーワード、サイトのタイトルなどです。もちろん、この種の分岐は、要求オブジェクトにアクセスできるアプリケーションの部分からのみ可能です。

ポール

4

1 に答える 1

1

フラスコドキュメントを見てください。「フラスコのパターン」セクションで明確に説明されているアプリケーションファクトリとアプリケーションディスパッチを介してドメイン処理機能を実装するのは非常に簡単です。

http://flask.pocoo.org/docs/patterns/appdispatch/

http://flask.pocoo.org/docs/patterns/appfactories/

于 2011-08-07T09:11:01.170 に答える