我有一个 flask 测试网站,我想使用的os.environ变量从venv或从Apache的SetEnv,但我不能弄清楚。
app.py:
from flask import Flask
import os
app = Flask(__name__)
#app.config.from_object('site3.default_settings')
#app.config.from_envvar('SITE3_SETTINGS')
#app.config.from_prefixed_env()
password = "test"
password = os.environ
@app.route('/')
def home():
my_env_var = os.environ.get('MY_ENV_VAR')
return f"3. site!!:{my_env_var} BU BIR FLASK UYGULAMASIII!!<br> Şifre: {password}\n"
旋度输出为:3.网站!!:没有布比尔瓶乌伊古拉马西尔!!
环境(“'APACHE_RUN_DIR':“/var/运行/apache 2”、“系统执行PID”:“20419”,“APACHE_PID_文件”:“/var/运行/apache 2/apache2.pid”,“日志流”:“8:128103”,“路径”:'/usr/本地/子文件夹:/usr/本地/子文件夹:/usr/子文件夹:/子文件夹:/子文件夹:/快照/子文件夹','调用标识':“9afa 423 a83864973 b497217939 a094 fc”、“高速缓存锁定目录”:“/变量/锁/apache 2”,“语言”:“C”、"Apache_运行_用户“:“www-data”、“Apache运行组”:“www-data”、“APACHE日志目录”:“/变量/日志/apache 2”、“PWD”:“/”、“主页”:“/var/www'})
Apache配置:
<VirtualHost *:80>
ServerName site3.com
ServerAlias www.site3.com
SetEnv SECRETT "devet"
SetEnv MY_ENV_VAR value
SetEnv ENVTYPE production
WSGIDaemonProcess flaskapp user=www-data group=www-data threads=5 python-home=/var/www/site3/venv
WSGIScriptAlias / /var/www/site3/app.wsgi
SetEnv SECRETT denet
SetEnv MY_ENV_VAR valuee
<Directory /var/www/site3>
WSGIProcessGroup flaskapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
Alias /static /var/www/site3/static
<Directory /var/www/site3/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/www/site3/logs/error.log
CustomLog /var/www/site3/logs/access.log combined
</VirtualHost>
app.wsgi:
import sys
sys.path.insert(0, '/var/www/site3')
#activate_this = '/var/www/site3/venv/bin/activate'
#with open(activate_this) as file:
# exec(file.read(), dict(__file__=activate_this))
from app import app as application
if __name__ == "__main__":
application.run()
这是我的第一个问题,我正在努力学习。谢谢大家。
当我使用“flask run”和curl localhost:5000时,一切都像我预期的那样工作。
1条答案
按热度按时间rt4zxlrg1#
将.env文件添加到项目中,并加载所有作为环境变量找到的变量,例如:
然后pip安装python-dotenv
然后在应用设置中使用load_dotenv()
当执行应用程序时,添加app:create_app()作为参数,例如使用gunicorn,在docker入口点上,您的脚本如下所示:
尝试添加到你在app.wsgi中定义应用程序的地方