我已經燒瓶中的應用程序的結構,如下所示:如何不使用__init__.py作爲Flask應用程序名稱?
- 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 /靜態/
- my_cool_app /模板/
而且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
被設置爲其他內容,是否更合適/典型?
執行導出時,你在什麼目錄下FLASK_APP = my_cool_app燒瓶運行?你在你的repo_root目錄嗎? – clockwatcher
一般來說'__init __。py'是放置程序包所需的代碼的好地方。這不是放置應用程序代碼的地方。 –