簡體   English   中英

Flask 忽略配置 Class

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM