![](/img/trans.png)
[英]Why is Flask not configuring certain environment variables from the config class? Need help understanding config process
[英]Flask ignores config Class
我正在嘗試使用類設置配置文件,出於某種原因 Flask 只是忽略了配置 class 上的設置。
配置文件:
class Config:
FLASK_ENV = 'development'
__init__.py:
from flask import Flask
def init_app():
# Set up core app
app = Flask(__name__)
app.config.from_object('config.Config')
with app.app_context():
# Import app routes
from .index import routes
# Register blueprints
app.register_blueprint(routes.index_bp)
return app
文件結構為:
.
├── config.py
├── requirements.txt
├── application
│ ├── __init__.py
│ └── index
│ ├── routes.py
│ ├── static
│ └── templates
└── wsgi.py
當我使用環境變量設置 flask 環境時,它工作得很好,但是,我看過一些教程,比如這個教程,它們使用類來定義使用 Python 文件的配置。
更新:我在配置字典中添加了一條打印語句,因為我想檢查配置是否正在加載,並且確實已加載:
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
**development**
* Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
我還嘗試使用app.config['FLASK_ENV']='development'
指定設置,但它仍然忽略它。 似乎 Flask 直接忽略了我的配置設置,這是我的入口點文件,以防萬一:
from application import init_app
app = init_app()
if __name__ == "__main__":
app.run()
引用自 Flask 配置處理文檔:
雖然可以在您的配置或代碼中設置 ENV 和 DEBUG,但強烈建議不要這樣做。 它們無法通過 flask 命令提前讀取,並且某些系統或擴展可能已經根據先前的值進行了自我配置。
https://flask.palletsprojects.com/en/1.1.x/config/
如您所見,應用程序一開始就需要變量,否則您的系統可能會被配置。
您可以嘗試取消設置以前的環境變量,這可能會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.