You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask入门教程Hello World环节持续出现404错误求助

Flask Hello World 404错误求助

我正在学习Flask入门教程的Hello World初始环节,但运行代码后持续出现404错误。补充信息:

  • 端口5000未被占用
  • 已尝试更换端口、配置instance/config.py中的server_name和application_root,问题仍未解决
  • 本人是Flask新手,急需帮助

代码如下:

import os

from flask import Flask


def create_app(test_config=None):
    # 创建并配置应用
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(
        SECRET_KEY='dev',
        DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite'),
    )

    if test_config is None:
        # 非测试环境下加载实例配置(如果存在)
        app.config.from_pyfile('config.py', silent=True)
    else:
        # 加载传入的测试配置
        app.config.from_mapping(test_config)

    # 确保实例文件夹存在
    try:
        os.makedirs(app.instance_path)
    except OSError:
        pass

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

    return app


if __name__ == "__main__":
    app = create_app()
    app.run(debug=True)

目录结构:

  • flaskr/
  • instance/
  • tests/
  • venv/

可能的排查方向与解决办法

  1. 严格匹配访问路径
    你的路由是@app.route('/hello/')(末尾带斜杠),访问时必须完全匹配:

    • 正确路径:http://localhost:5000/hello/
    • 错误路径:http://localhost:5000/hello(末尾无斜杠,Flask默认不会自动重定向,会直接返回404)
  2. 确认代码运行目录
    必须在项目根目录(包含flaskr/、instance/的目录)下执行代码,否则Flask无法正确识别应用上下文。执行命令示例:

    python app.py
    

    (替换app.py为你的实际代码文件名)

  3. 检查config.py配置冲突
    如果你在instance/config.py中设置了APPLICATION_ROOT='/flaskr',访问路径需要加上前缀,即http://localhost:5000/flaskr/hello/。若不需要路径前缀,直接删除application_root配置项即可。

  4. 验证路由是否注册成功
    在create_app函数末尾添加打印路由的代码,启动后查看终端输出,确认/hello/路由存在:

    print("已注册路由列表:", [rule.rule for rule in app.url_map.iter_rules()])
    

    若终端输出里没有/hello/,说明路由未被正确注册。

  5. 简化代码排查问题
    暂时去掉配置加载逻辑,用最简代码测试:

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route('/hello/')
    def hello():
        return 'Hello, World!'
    
    if __name__ == "__main__":
        app.run(debug=True)
    

    运行后访问http://localhost:5000/hello/,如果正常显示,说明问题出在原代码的配置加载逻辑中,再逐步恢复原有代码排查。

内容的提问来源于stack exchange,提问作者Deven Shah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:05:32