我具有以下结构:
app_dir/
| myapi/
| __init__.py
| myapi_app.py
myapi_app.py
在哪里
from myapi import create_app, db
app = create_app()
和myapi/__init__.py
是
import logging
import os
from logging.handlers import RotatingFileHandler
from flask import Flask, request, current_app
from flask_sqlalchemy import SQLAlchemy
from myapi.config import Config
db = SQLAlchemy()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)
db.init_app(app)
...
return app
当我设置FLASK_APP=myapi_app.py
并从flask run
目录运行app_dir
时,flask服务将启动。但是,当我发出请求时,出现以下错误:flask.cli.NoAppException: Could not import "myapi_app".
我在哪里出错?
答案 0 :(得分:0)
您的问题是,您要将$ FLASK_APP设置为存储应用变量的文件,而应将其设置为python对象路径,例如
FLASK_APP=myapi_app:app
但是,这不是必需的,因为您也可以这样做:
FLASK_APP=myapi
Flask会在程序包中自行寻找create_app
函数。