Flask と App Engine を使用してマルチテナンシー アプリを実装しています。名前空間 (App Engine の名前空間) としてサブドメインを使用しています。以下は私のデザインです:
ユーザーが test.domain.com にアクセスすると、サブドメイン 'test' が SudDomain モデルにあるかどうかを確認します。これは次のようになります。
class SubDomain: # subdomain stored as id
pass
SubDomain に「test」がある場合、ユーザーはアプリのログイン ページにリダイレクトされ、アプリの現在の名前空間は「test」に設定されます。それ以外の場合、登録ページが表示されます。
本番環境と開発環境の両方に実装するにはどうすればよいですか? 私は次のようにしたいと思います:
生産中:
before_request デコレーターを使用すると、次のようになります。
from urllib2 import urlparse
from flask import request
url_info = urlparse.urlparse(request.url) # Say, http://test.domain.com
subdomain = url_info.netloc.split(".")[0]
このサブドメインは SubDomain モデルに対してチェックでき、残りの手順に従います。
開発中:
このシナリオを実装する方法がわかりません。私が考えているのは、リクエストは の形式になりますhttp://localhost:8888/test/list/
。ここでは、「テスト」はサブドメインと見なされます。before_request
変更されたリクエストが次のように見えるようにデコレータで何らかの形で削除されhttp://localhost:8888/list/
、これが適切なエンドポイントにつながります。フラスコでこのようにすることは可能ですか?
次に、抽出されたサブドメイン - 'test' が SubDomain モデルでチェックされます。
私は正しい方法でそれをやっていますか?私の方法、特にローカル開発環境の方法に何か問題がありますか?
ところで、それは私の最初のマルチテナンシー アプリですが、ご容赦ください。
前もって感謝します..