flask 运行与 python

问题描述 投票:0回答:3

我很难使用“python”方法运行我的烧瓶应用程序。我使用没有任何问题

export FLASK_APP=microblog.py
flask run

但尝试使用

python microblog.py

会导致以下错误

ImportError: No module named 'app'

我的 microblog.py 文件如下所示:

from app import app, db
from app.models import User

@app.shell_context_processor
def make_shell_context():
    return {'db': db, 'User': User}

我的

__init__.py
文件看起来像这样:

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

from flask_login import LoginManager


app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

login = LoginManager(app)
login.login_view = 'login'

from app import routes

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

这些文件所在的文件夹称为“app”。我试过把

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

microblog.py 文件中也是如此,同样不成功。

我还有模板/静态/等文件夹。和一个路由文件,我在其中运行所有

@app.route()
命令

再次,当我在终端中运行“flask run”时,一切正常,当我尝试使用“python microblog.py”时,它就崩溃了。我正在尝试在 AWS 上启动该应用程序,几乎每个教程都要求使用“python”方法调用应用程序。如有任何帮助,我们将不胜感激。

python flask
3个回答
2
投票

[已解决]

我的目录搞混了。我将

microblog.py
拉回到
app
文件夹之外,并且能够毫无问题地运行
python microblog.py
,并且无需编辑任何内容。

事后看来,我可能应该一开始就发布所有内容的文件结构。


1
投票

在这一行

from app import app, db
中,您尝试导入一个名为
app.app
的模块,但它显然不存在于您的项目源中。

尝试在

app.py
路径中创建一个名为
app/
的文件,将
__init__.py
文件的所有内容复制并粘贴到其中。

您的

__init__.py
必须为空。这只是表明你的路径
app/
是一个可导入的模块。

请参阅这篇文章。


0
投票

我已经尝试过这个,它在 Windows 上对我有用。

$env:FLASK_APP="hello.py"

flask run

就是这样

© www.soinside.com 2019 - 2024. All rights reserved.