Динамическая обработка поддоменов в веб-приложении (Flask) [закрыто]

Я собираюсь использовать колбу для создания веб-приложения, и часть приложения будет включать субдомен (например, user1.appname.org).

Я не уверен, как динамически создавать эти субдомены в конфигурации фляги или как развертывать их на рабочем сервере.

Каков наилучший способ сделать это?

Ответы на вопрос(2)

Чтобы дополнить пост Шона Виеры, вам также необходимо установить переменную конфигурации SERVER_NAME.

Документация:http://flask.pocoo.org/docs/config/#SERVER_NAME

The name and port number of the server. Required for subdomain support (e.g.: 'myapp.dev:5000') Note that localhost does not support subdomains so setting this to “localhost” does not help. Setting a SERVER_NAME also by default enables URL generation without a request context but with an application context.

Для локального тестирования необходимо добавить записи в вашhosts файл, как это:

127.0.0.1       cvshark.local
127.0.0.1       robert.cvshark.local
127.0.0.1       www.cvshark.local
 26 мая 2016 г., 01:47
Это лучший ответ; это выходит за рамки документации и решает более сложные вещи.
 04 июн. 2018 г., 15:30
@MichaelIlie Да, вы можете посмотреть последний маршрут в ответе Шона Виейры.
 10 февр. 2018 г., 15:24
но вы можете добавить DYNAMIC записи в файл хоста?
 31 окт. 2015 г., 07:28
Я не понимаю пример, который они приводят: "myapp.dev: 5000". Является ли myapp поддоменом, а dev - именем хоста?
 18 нояб. 2015 г., 09:19
@compie Да, это правильно.
Решение Вопроса

Все конструкции маршрутизации 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"
 07 мая 2013 г., 13:46
@Raj - это будет зависеть от того, как вы настраиваете эти пользовательские домены. (Лучше задать отдельный вопрос с более подробной информацией о вашей настройке.)
 01 июл. 2012 г., 13:20
Мне также интересно, есть ли способ проверить это локально. Я пытался добавить несколько записей в мой файл hosts. Это, похоже, не работает.
 Bruce Collie30 июн. 2012 г., 14:03
Будет ли эта работа выполняться на локальном сервере тестирования Flask?
 26 июл. 2013 г., 02:57
Вы также должны иметь возможность проверить это локально с помощью бесплатного сервиса, такого как xip.io от 37Signals.
 07 мая 2013 г., 04:29
@sean Как хорошо вы делаете что-то подобное для пользовательских доменов. Пользователь регистрируется на subdomain.example.com, а затем добавляет пользовательский домен, например www.mygreatsite.com? Как бы я обработал доступ к этому пользовательскому домену по маршруту Flask?

Ваш ответ на вопрос