1

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 モデルでチェックされます。

私は正しい方法でそれをやっていますか?私の方法、特にローカル開発環境の方法に何か問題がありますか?

ところで、それは私の最初のマルチテナンシー アプリですが、ご容赦ください。

前もって感謝します..

4

1 に答える 1