【发布时间】:2017-06-04 04:16:28
【问题描述】:
我有一个这样的烧瓶应用程序:
- repo_root
- config.py
- requirements.txt
- my_cool_app/
- my_cool_app/__init__.py
- my_cool_app/models.py
- my_cool_app/views.py
- my_cool_app/static/
- my_cool_app/templates/
my_cool_app/__init__.py 的内容如下:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_oauth2_login import GoogleLogin
from flask_login import LoginManager
app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
migrate = Migrate(app, db)
google_login = GoogleLogin(app)
login_manager = LoginManager()
login_manager.init_app(app)
import my_cool_app.models
import my_cool_app.views
为了运行它,我调用:
FLASK_APP=my_cool_app/__init__.py flask run
根据网上的各种文档,我想我应该可以将FLASK_APP设置为包名my_cool_app。当我这样做并调用flask run 时,应用程序启动但在浏览器中我立即看到错误:
flask.cli.NoAppException
flask.cli.NoAppException: The file/path provided (my_cool_app) does not appear to exist. Please verify the path is correct. If app is not on PYTHONPATH, ensure the extension is .py
我应该怎么做才能将FLASK_APP 设置为my_cool_app?或者考虑到这个烧瓶应用程序的结构方式,将FLASK_APP 设置为其他值是否更合适/更典型?
【问题讨论】:
-
执行 export FLASK_APP=my_cool_app 烧瓶运行时你在哪个目录?你在你的 repo_root 目录吗?
-
一般
__init__.py是放置初始化包所需代码的好地方。这不是放置应用程序代码的好地方。