flaskを使用してWebアプリケーションを作成します。アプリケーションの一部には、サブドメイン(user1.appname.orgなど)が含まれます。
flask構成でこれらのサブドメインを動的に作成する方法、またはそれらを運用サーバーにデプロイする方法がわかりません。
これを行うための最良の方法は何ですか?
すべてのFlaskのルーティング構造は subdomain
キーワード引数をサポートします(これにはルート変数のサポートが含まれます)。
@app.route("/", subdomain="static")
def static_index():
"""Flask supports static subdomains
This is available at static.your-domain.tld"""
return "static.your-domain.tld"
@app.route("/dynamic", subdomain="<username>")
def username_index(username):
"""Dynamic subdomains are also supported
Try going to user1.your-domain.tld/dynamic"""
return username + ".your-domain.tld"
Sean Vieraの投稿を補完するには、SERVER_NAME構成変数も設定する必要があります。
ドキュメント: http://flask.pocoo.org/docs/config/#SERVER_NAME
サーバーの名前とポート番号。サブドメインのサポートに必要です(例: 'myapp.dev:5000')localhostはサブドメインをサポートしていないため、これを「localhost」に設定しても効果がないことに注意してください。デフォルトでもSERVER_NAMEを設定すると、リクエストコンテキストなしで、アプリケーションコンテキスト付きのURL生成が有効になります。
ローカルでテストするには、次のようにhosts
ファイルにエントリを追加する必要があります。
127.0.0.1 cvshark.local
127.0.0.1 robert.cvshark.local
127.0.0.1 www.cvshark.local