无需请求即可获取 Flask App 的 url

ste*_*eve 8 python flask

我有一个如下所示的烧瓶应用程序:

@app.before_first_request
def set_base_url():
  global base_url
  base_url = ?? # something like myflaskapp.com or http://192.168.0.5
  # Initialize some some stuff here...

if __name__ == "__main__":
    app = Flask(__name__)
    app.run(host='0.0.0.0', port=8000)
Run Code Online (Sandbox Code Playgroud)

我需要在收到任何请求之前获取应用程序的完整 url,以便对某些配置选项进行 1 次初始化。做这个的最好方式是什么?

Sea*_*ira -2

只需使用即可从您的配置中app.config获取SERVER_NAME

if __name__ == "__main__":
    app = Flask(__name__)
    domain = app.config.get('SERVER_NAME', 'some.sensible.default.domain')
    # Do things with `domain` here
Run Code Online (Sandbox Code Playgroud)

  • 仅当您使用 SERVER_NAME 配置实例时,这才有效。如果您使用任何其他方法,例如 SERVER_HOST 和 SERVER_PORT 或 werkzeug run_simple 那么这将不起作用。 (2认同)