Подтвердить что ты не робот

Динамическая обработка поддоменов в веб-приложении (фляжка)

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

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

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

4b9b3361

Ответ 1

Все конструкции маршрутизации 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"

Ответ 2

Чтобы дополнить пост Шона Виеры, вам также нужно установить переменную конфигурации 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