这是我的Flask应用的目录层次结构,后跟当前的FlaskApp/app/__init__.py
代码:
FlaskApp目录树:
/FlaskApp
│ config.py
│ run.py
├───app
│ │ db.py
│ │ forms.py
│ │ models.py
│ │ views.py
│ │ __init__.py
│ ├───static\
│ └───templates\
├───instance
│ config.py
__ init __。py:
from flask import Flask
app = Flask(__name__,
instance_relative_config=True,
)
app.config.from_object('config')
app.config.from_pyfile('config.py')
使用app.config.from_pyfile('config.py')
从实例文件夹加载配置变量会引发以下错误:
FileNotFoundError:[错误2]无法加载配置文件(无此类文件或目录):'C:\ .. \ FlaskApp \ app \ instance \ config.py'
我必须使用unipath来解决当前问题,方法是将instance_path=Path(os.getcwd()).parent + "\instance"
添加到变量app
中来解决此问题。
这样做很好地解决了这个问题,但我相信有一种更好/更干净的方法(无需更改当前目录层次结构)。有人可以与此有关吗?
谢谢
答案 0 :(得分:0)
您可以尝试使用os.path.abspath(__file__)
来获取当前文件的绝对路径。
然后与'../instance'
my_instance_location = os.path.join(os.path.abspath(__file__),'../instance')
app = Flask(__name__,
instance_path=my_instance_location,
instance_relative_config=True,
)