Flask从父目录导入应用程序

时间:2017-06-13 22:24:56

标签: python flask

我的应用程序结构如下:

name
    -app.py
    -__init__.py
    -folder1
            -views.py
            -models.py
            -__init__.py

我app.py的内容:

from flask import Flask
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

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

名称文件夹中的 init .py为:

from app import app

如何将此应用导入views.py?目前,我正在使用

from name import app
from models import Class1
app.add_url_rule('/', view_func=Class1.as_view('class1'))

,但是当我运行应用程序时,它会返回404错误。

1 个答案:

答案 0 :(得分:3)

这就是我对我的应用所做的:

__init__.py

from .app import app

with app.app_context():
    from .folder1 import models, views  # noqa

folder1/views.py

from flask import current_app as app
# then use `app` as usual
from .models import Class1
app.add_url_rule('/', view_func=Class1.as_view('class1'))

" app_context()"将当前app对象注入current_app代理。阅读this以了解机制。

同样it is recommended明确使用相对导入(带有额外的点" .")。