2

我希望我的 Flask 应用程序在本地主机上运行和在线托管时具有不同的行为。当烧瓶应用程序位于本地主机上以及部署时,如何从烧瓶应用程序中进行检测?

4

2 回答 2

3

您需要查看文档的配置处理部分,最具体地说,是 dev / production 部分。在这里总结一下,你想要做的是:

  • 加载您保留在源代码管理中的基本配置,并为需要具有某些价值的事物提供合理的默认值。任何需要值的东西都应该将值设置为对生产而不是对开发有意义的值。
  • 从通过提供环境特定设置(例如数据库 URL)的环境变量发现的路径加载附加配置。

代码中的一个例子:

from __future__ import absolute_imports
from flask import Flask
import .config  # This is our default configuration

app = Flask(__name__)

# First, set the default configuration
app.config.from_object(config)

# Then, load the environment-specific information
app.config.from_envvar("MYAPP_CONFIG_PATH")

# Setup routes and then ...

if __name__ == "__main__":
    app.run()

另请参阅:文档Flask.config

于 2013-06-13T03:40:49.883 回答
3

这是一种方法。关键是将当前根 urlflask.request.url_root与您要匹配的已知 url 值进行比较。

摘自 github repo https://github.com/nueverest/vue_flask

from flask import Flask, request

def is_production():
    """ Determines if app is running on the production server or not.
    Get Current URI.
    Extract root location.
    Compare root location against developer server value 127.0.0.1:5000.
    :return: (bool) True if code is running on the production server, and False otherwise.
    """
    root_url = request.url_root
    developer_url = 'http://127.0.0.1:5000/'
    return root_url != developer_url
于 2017-02-24T16:05:55.287 回答