python flask ModuleNotFoundError: No module named 'app'

在pycharm中运行时报错

img


请问各位,该如何处理
python代码如下

img

你看看是不是你的app.py放错了位置,记住 from app import db ,那个.py文件就叫app.py。如果不是,再检测一下flask有没有安装,如果使用了Anaconda虚拟环境确保虚拟环境安装了flask

【相关推荐】



  • 这篇文章讲的很详细,请看:Flask在pycharm中可以运行但cmd中运行显示No module named 'app'
  • 除此之外, 这篇博客: Flask-1基础中的 app.py 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/')					#路由,必须以 / 开始否则报错
    def hello_world():				#视图函数
        return 'Hello World!'		
    
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0', port=8080, debug=True)
    

    Flask 默认拥有内置服务器

    看 python 源码,ctrl 加单击

    host 默认127.0.0.1只能本机访问,允许外网访问则需改成0.0.0.0

    Debug 模式:开启后更改源码实时更新,适用于开发环境

    app.config
    
    <Config {'ENV': 'production', 'DEBUG': False, 'TESTING': False, 'PROPAGATE_EXCEPTIONS': None, 'PRESERVE_CONTEXT_ON_EXCEPTION': None, 'SECRET_KEY': None, 'PERMANENT_S
    ESSION_LIFETIME': datetime.timedelta(days=31), 'USE_X_SENDFILE': False, 'SERVER_NAME': None, 'APPLICATION_ROOT': '/', 'SESSION_COOKIE_NAME': 'session', 'SESSION_COOK
    IE_DOMAIN': None, 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_SECURE': False, 'SESSION_COOKIE_SAMESITE': None, 'SESSION_REFRESH_EAC
    H_REQUEST': True, 'MAX_CONTENT_LENGTH': None, 'SEND_FILE_MAX_AGE_DEFAULT': datetime.timedelta(seconds=43200), 'TRAP_BAD_REQUEST_ERRORS': None, 'TRAP_HTTP_EXCEPTIONS'
    : False, 'EXPLAIN_TEMPLATE_LOADING': False, 'PREFERRED_URL_SCHEME': 'http', 'JSON_AS_ASCII': True, 'JSON_SORT_KEYS': True, 'JSONIFY_PRETTYPRINT_REGULAR': False, 'JSO
    NIFY_MIMETYPE': 'application/json', 'TEMPLATES_AUTO_RELOAD': None, 'MAX_COOKIE_SIZE': 4093}>
    

    修改环境

    app.py

    app.config['ENV']='development'
    app.config['DEBUG']=True
    

    或将配置文件独立为

    settings.py

    ENC = 'development'
    DEBUG = True
    

    在此文件中port端口设置无效

    在app.py导入settings

    from flask import Flask
    app = Flask(__name__) 
    
    import settings
    
    app.config.from_object(settings)
    或者app.config.from_pyfile('settings.py')
    
    @app.route('/')					#路由
    def hello_world():				#视图函数
        return 'Hello World!'		
    
    if __name__ == '__main__':
        app.run(port=8080)
        #端口在这改有效
    

    @app.route()

    源码:
    def route(self, rule, **options):
    def decorator(f):
                endpoint = options.pop("endpoint", None)
                self.add_url_rule(rule, endpoint, f, **options)
                return f
    	return decorator
    
    
    @app.route('/')
    def index():
        return 'Index page'
    就等效于
    def index():
        return 'hello'
    app.add_url_rule('/index',view_func=index)
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^