因为写错一个单词导致报错Error: Failed to find Flask application or factory in module 'flaskr'. Use 'flaskr:name' to specify one.

一、问题描述

1、创建了一个flask应用工厂函数,代码如下:

import os
from flask import Flask

def create_app(test_config=None):
    # 创建和配置应用程序
    app = Flask(__name__,instance_relative_config=True)
    # 使用from_mapping来更新默认配置
    app.config.from_mapping(
        SECRET_KEY = 'dev',
        DATABASE = os.path.join(app.instance_path,'flaskr.sqlite')
    )
    if test_config is None:
        # 如果配置为None,则使用config.py中的值来重载缺省配置
        app.config.from_pyfile('config.py',silent=True)
    else:
        # 设置应用默认配置
        app.config.from_mapping(test_config)
   
    try:
         # 确保实例文件夹存在
        os.makedirs(app.instance_path)
    except OSError:
        pass

    # 创建一个简单的页面
    @app.route('/hello')
    def hello():
        return 'Hello ,World!'
    
    return app

2、使用flask命令运行应用,命令如下:

%export FLASK_APP=flaskr 
%export FLASK_ENV=development
%flask run

3、运行后报错如下:

 

 

二、问题解决

1、起初猜想是不是flaskr这个包里面python文件太多了,因为除了__init__.py文件之外还有其他自己写的.py文件,于是把除了__init__.py的文件全都移走了,再次执行上面的命令还是一样的报错。

2、在网上百度该报错,有些博主写的原因是没return app,但是我的代码是有返回的,所以也不是这个原因。

3、猜想是不是工厂函数名写错导致没有调用到这个函数,仔细看了下函数名,确实写错了,create_app写成了creat_app,修改之后问题解决,成功执行,如下图:

 

posted @ 2022-09-15 11:40  梅梅不想踩坑  阅读(1157)  评论(0编辑  收藏  举报