【发布时间】:2017-05-11 03:24:16
【问题描述】:
我想用 Flask 制作一个 API,它还需要一个管理面板。 我想蓝图是要走的路,但我不想做两次模型。
我的结构是这样的:
- app
- api
- admin
- models
所以我的问题是:如何访问我的api 蓝图和admin 蓝图中的models 文件夹中的模型?
提前致谢。
【问题讨论】:
我想用 Flask 制作一个 API,它还需要一个管理面板。 我想蓝图是要走的路,但我不想做两次模型。
我的结构是这样的:
- app
- api
- admin
- models
所以我的问题是:如何访问我的api 蓝图和admin 蓝图中的models 文件夹中的模型?
提前致谢。
【问题讨论】:
如果您在 api 或 admin 文件夹中的模块中,您可以使用此表示法从 models 文件夹中的模块中导入任何内容
from ..models.module_name import model1, model2, etc
对于小型项目,我通常将所有模型保存在一个 models.py 文件中,例如:
[app]
[blueprint_1]
__init__.py
views.py
[blueprint_2]
[static]
[templates]
__init__.py
models.py
然后从您的任何蓝图文件中:
from ..models import model1, model2, etc
【讨论】:
关于导入,如果您的目录包含__init__.py,那么它是一个python 包,所以. 用于当前目录。例如:
auth/
__init__.py
forms.py
views.py
#views.py
from forms import Form name
from . import auth_blueprint # imports from __init__.py
因此,如果您想从另一个目录导入,则必须使用 .. 从 __init__.py 文件导入,假设您的模型目录包含这些文件:
models/
__init__.py
UserModel.py
现在让我们为 auth 模块导入模型:
#auth/views.py
from .. import models # import froms models/__init__.py
from ..models import UserModel
【讨论】: