【问题标题】:flask NoAppException but flask run works烧瓶 NoAppException 但烧瓶运行有效
【发布时间】:2025-12-31 09:55:12
【问题描述】:

我有以下结构:

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 并从app_dir 目录运行flask run 时,烧瓶服务启动。但是,当我提出请求时,我收到以下错误:flask.cli.NoAppException: Could not import "myapi_app". 我哪里出错了?

【问题讨论】:

    标签: flask


    【解决方案1】:

    您的问题是您将 $FLASK_APP 设置为存储 app 变量的文件,您应该将其设置为 python 对象路径,例如

    FLASK_APP=myapi_app:app
    

    但是,这不是必需的,您也可以这样做:

    FLASK_APP=myapi
    

    因为 Flask 会自行在包中查找 create_app 函数。

    【讨论】: