Python 烧瓶外壳在模块“中找不到烧瓶应用程序或工厂”;烧瓶;
我正在学习第7章中的“flask_web_开发”,它将应用程序封装到工厂Python 烧瓶外壳在模块“中找不到烧瓶应用程序或工厂”;烧瓶;,python,flask,Python,Flask,我正在学习第7章中的“flask_web_开发”,它将应用程序封装到工厂 def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) mail.init_app(app) moment.init_app(
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
bootstrap.init_app(app)
mail.init_app(app)
moment.init_app(app)
db.init_app(app)
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
return app
它在运行flask shell时报告错误
In [21]: !flask shell
Usage: flask shell [OPTIONS] [IPYTHON_ARGS]...
Error: Failed to find Flask application or factory in module "flask". Use "FLASK_APP=flask:name to specify one.
烧瓶运行正常
In [19]: !export FLASK_APP=flask.py; export FLASK_DEBUG=1
In [20]: !flask run &
In [21]: * Serving Flask app "flask.py" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 301-086-427
flask shell
在前面的章节中运行良好,我使用“flask shell ipython”将其设置为ipython
细节
In [26]: !export FLASK_APP=flasky.py
In [27]: !flask shell
Usage: flask shell [OPTIONS] [IPYTHON_ARGS]...
Error: Failed to find Flask application or factory in module "flask". Use "FLASK_APP=flask:name to specify one.
还有flasky.py
In [28]: !cat flasky.py
import os
import click
from flask_migrate import Migrate
from app import create_app, db
from app.models import User, Role
app = create_app(os.getenv('FLASK_CONFIG') or 'default')
migrate = Migrate(app, db)
@app.shell_context_processor
def make_shell_context():
return dict(db=db, User=User, Role=Role)
@app.cli.command()
@click.argument('test_names', nargs=-1)
def test(test_names):
"""Run the unit tests."""
import unittest
if test_names:
tests = unittest.TestLoader().loadTestsFromNames(test_names)
else:
tests = unittest.TestLoader().discover('tests')
unittest.TextTestRunner(verbosity=2).run(tests)
在“flask run&”之前,您正在导出“flask_APP=flask.py” 在“烧瓶外壳”之前,您要导出“烧瓶应用程序=flasky.py”
两个名称都不同。在“flask run&”您正在导出“flask_APP=flask.py”之前 在“烧瓶外壳”之前,您要导出“烧瓶应用程序=flasky.py”
这两个名称不同。提供
flask.py的内容。在运行FLASK shell?ty之前,您是否已导出FLASK_应用程序?请参阅更新@Arunomo应提供flask.py
的内容物。在运行FLASK shell?ty之前,您是否已导出FLASK_应用程序?请参阅更新@阿伦莫治