Получить схему хоста и домен с помощью Flask - PullRequest
0 голосов
/ 26 июня 2018

У меня есть определенный случай использования, когда приложение Flask не сконфигурировано с SERVER_NAME и находится в подпути (скажем, http://example.com/subpath/subpath2),, и в контексте запроса мне нужноизвлечь только http://example.com.

Я заметил, что без настройки SERVER_NAME в конфигурации Flask, url_for с _external=True все еще может получить полный URL-адрес, включая домен, на котором находится приложение FlaskЯ решил, что должен быть способ, которым Flask (или Werkzeug) извлекает домен. Я копался внутри функции url_for, и в результате была получена эта функция, которую я сделал, чтобы получить домен из контекста запроса.

from flask.globals import _request_ctx_stack

def get_domain():
    fragments = [
        _request_ctx_stack.top.url_adapter.url_scheme,
        _request_ctx_stack.top.url_adapter.get_host(''),
    ]
    return '://'.join(fragments)

Я понимаю, что у меня есть доступ к частным пользователям, но нет другого очевидного способа сделать это, который я мог бы найти. Это правильный способ сделать это?

...