【问题标题】:Flask Blueprints sharingFlask 蓝图共享
【发布时间】:2017-05-11 03:24:16
【问题描述】:

我想用 Flask 制作一个 API,它还需要一个管理面板。 我想蓝图是要走的路,但我不想做两次模型。

我的结构是这样的:

- app - api - admin - models

所以我的问题是:如何访问我的api 蓝图和admin 蓝图中的models 文件夹中的模型?

提前致谢。

【问题讨论】:

    标签: flask blueprint


    【解决方案1】:

    如果您在 apiadmin 文件夹中的模块中,您可以使用此表示法从 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
    

    【讨论】:

    • 谢谢,我以为是从当前文件夹中导入的,没有返回。
    • 没问题,希望对您有帮助
    【解决方案2】:

    关于导入,如果您的目录包含__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
    

    【讨论】:

      猜你喜欢
      • 2012-09-14
      • 2023-03-22
      • 1970-01-01
      • 2013-05-21
      • 2017-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多