在不导入的flask应用程序中构造文件

2024-05-14 13:46:54 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的烧瓶应用程序中,我正在与进口产品做斗争。在

这就是我现在的结构

    app/
       __init__.py
       config.py
       db_create.py
       models.py
       views.py 
    run.py

在我的__init__.py文件中,我有以下代码:

^{pr2}$

在我的run.py中,我有以下代码:

    #!flask/bin/python
    from app import app
    app.run()

db_create.py我有:

    from app import db

剩下的代码创建数据库并添加一些示例数据。在

但是,当我尝试运行db_create.py时,我得到了以下错误:

    ImportError: No module named app

我不知道这里有什么问题,是周期性进口还是其他问题。在


Tags: run代码frompyimportconfigapp应用程序
3条回答

应用程序中存在结构问题。 您可以从run.py导入应用程序,但不应从app/db_create.py导入它。这实际上是一种循环输入。如果您需要app/__init__.py文件中的内容,请将其导出到另一个可以从db_create.py导入的.py文件中。在

此方法不起作用,因为在db_create.py中没有变量app。在

请参见__init__.py中的您已经初始化了一个名为app的变量。 现在在run.py中,从app directory导入app变量。在

现在既然db_create__init__位于需要导入的某个目录中,如下所示from __init__ import app。在

尽管我建议不要创建文件db_create.py,而是在__init__.py中使用相同的代码,因为这样做只是为了测试目的。在

同样在__init__.py中,直接使用import views, models,而不是{} (因为它们也在同一目录中)

希望我能正确解释。在

app/__init__.py中,您有:

app = Flask(__name__)

以及

^{pr2}$

那么,app既是包名又是Flask实例?在

两件事不要同名。在

把所有的导入都放在文件的最上面,这样至少可以简化你的生活。在

相关问题 更多 >

    热门问题