如何在实例文件夹和basedir中使用flask配置

时间:2018-09-07 20:59:17

标签: python flask

我有以下烧瓶应用程序:

main.py

from application import create_app    
app = create_app('flask.cfg')

application / init .py

def create_app(config_filename=None):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_pyfile(config_filename)

instance / flask.cfg

import os
basedir = os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_DATABASE_URI = os.environ.get(
    'DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'database/app.db')

此设置的问题:basedir解析为实例文件夹,而不是数据库文件夹所在项目的basedir。 最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

__file__是文件所在的目录。

您在__file__中使用了instance/flask.cfg,因此它是指instance/所在的flask.cfg

您所需要的只是返回到项目目录的原因 您的main.py在项目目录中

您需要执行以下操作:

basedir = os.path.abspath(os.path.join('../', os.path.dirname(__file__)))

这也会起作用

basedir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))