Python 从瓶子中读取uwsgi_参数

Python 从瓶子中读取uwsgi_参数,python,nginx,uwsgi,bottle,Python,Nginx,Uwsgi,Bottle,我有一个在nginx/uwsgi应用程序下运行的python3应用程序。这是一个多环境应用程序,所以我决定为每个环境创建不同的虚拟主机。在每个虚拟主机上,我定义了环境: uwsgi_param APPLICATION_ENV dev; 但我不能从瓶子里读东西,我正在努力: request.environ['APPLICATION_ENV'] 或 我正在尝试其他解决方案,但没有一个有效,我做错了什么???我找到了一个解决方案 知道uwsgi_参数将在请求完成后加载是很重要的,所以这就是为什么每

我有一个在nginx/uwsgi应用程序下运行的python3应用程序。这是一个多环境应用程序,所以我决定为每个环境创建不同的虚拟主机。在每个虚拟主机上,我定义了环境:

uwsgi_param APPLICATION_ENV dev;
但我不能从瓶子里读东西,我正在努力:

request.environ['APPLICATION_ENV']

我正在尝试其他解决方案,但没有一个有效,我做错了什么???

我找到了一个解决方案

知道uwsgi_参数将在请求完成后加载是很重要的,所以这就是为什么每次执行request.environ时我都没有得到uwsgi值的原因。如果我把这条线移动到@app.route,它就会工作

因此,为了解决这个问题,我在我的uwsgi_app.ini文件中添加了一个uswgi变量:

env = APPLICATION_ENV=dev
然后,在python代码中,在app.run()之前,可以获得变量APPLICATION_ENV,如下所示:

import os
application_env = os.getenv('APPLICATION_ENV', socket.gethostname())
其中,如果找不到应用程序环境,socket.gethostname()是默认值。

我找到了一个解决方案

知道uwsgi_参数将在请求完成后加载是很重要的,所以这就是为什么每次执行request.environ时我都没有得到uwsgi值的原因。如果我把这条线移动到@app.route,它就会工作

因此,为了解决这个问题,我在我的uwsgi_app.ini文件中添加了一个uswgi变量:

env = APPLICATION_ENV=dev
然后,在python代码中,在app.run()之前,可以获得变量APPLICATION_ENV,如下所示:

import os
application_env = os.getenv('APPLICATION_ENV', socket.gethostname())

其中,如果找不到应用程序_ENV,socket.gethostname()是默认值。

我需要指定,我想在我的app.run之前执行,因为它是一个多数据库应用程序,我必须在此时连接到数据库(如果可能),我需要指定,我想在我的app.run之前执行,因为它是一个多数据库应用程序,我必须在此时连接到数据库(如果可能)