Flask无法从config.py加载配置

时间:2019-02-20 15:37:54

标签: flask config

我的 __ init __。py 文件

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import app_config


db = SQLAlchemy()

def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    app.config.from_pyfile('config.py')

    db.init_app(app)

    @app.route('/')
    def index():
        return 'Hello, user'

    return app

我会找到烧瓶的教程 build crud app flask

我的 config.py 文件:

import os

# Set path for our db
basedir = os.path.dirname(os.path.abspath(__file__))


class Config:
    DEBUG = True


class DevConfig(Config):
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir,
                                                          'bookshell.db')
    SQLALCHEMY_ECHO = True
    SQLALCHEMY_TRACK_MODIFICATIONS = False


class ProdConfig(Config):
    DEBUG = False


class TestConfig(Config):
    DEBUG = True


app_config = {
    'development': DevConfig,
    'production': ProdConfig,
    'testing': TestConfig
}

run.py 文件

import os

# Import from app/__init__
from app import create_app


config_name = os.getenv('FLASK_CONFIG', 'development')
app = create_app(config_name)

if __name__ == '__main__':
    app.run()

因此,我尝试配置自己的config.py文件,但出现错误

FileNotFoundError: [Errno 2] Unable to load configuration file (No such file or directory): '/Users/yevhensurzhenko/Desktop/Simple_login_form/instance/config.py'

但是当我更改某些配置并尝试重新加载页面时,它给了我 405错误方法不允许 或

app.config.from_object(app_config[config_name])
KeyError: <flask.cli.ScriptInfo object at 0x1038a5b70>

所以,我做了一些更改,例如

config.py 中添加

app_config = {
    ..
    'default': DevConfig
} 

__ init __。py 中创建实例目录。

from instance import config

现在我从在 __ init __。py,create__app()...

中创建的func中获得输出
@app.route('/')
def index():
    return 'Hello, user'

但是,FLASK_CONFIG不会改变,它只能用于生产,wtf:(

0 个答案:

没有答案