【发布时间】:2015-02-13 19:09:57
【问题描述】:
我有一个像下面这样的烧瓶应用程序:
@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)
我需要在任何请求进入之前获取我的应用程序的完整 URL,以便对某些配置选项进行 1 次初始化。最好的方法是什么?
【问题讨论】:
-
我正在使用 pysaml2 库向我的应用程序添加单点登录功能。该库需要配置,该配置需要基本 url,如下所示:pysaml2.readthedocs.org/en/latest/howto/config.html 在“endpoints”键下。
-
有什么理由不使用Flask-SSO?我只问这个,因为它让我非常担心在 Flask 中以这种方式添加全局状态。
-
Flask-SSO 使用 Shibboleth 作为身份提供者。我必须使用不同的东西。以上只是展示我的需求的一个例子。我不会添加这样的全局变量。我有一个具有“base_url”属性的对象,但我没有显示代码,尽管上面是一个满足相同需求的更简单的示例。
-
如果您在
if __name__ == '__main__'块之前没有定义app,您将获得一个NameError。