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

Flask API路由/api/recommendations/<user_id>返回404错误求助

Flask路由404错误排查与解决

核心原因

你的路由定义中,参数的<和>被HTML转义成了&lt;和&gt;,Flask无法识别这种格式的路由参数,导致请求URL与定义的路由完全不匹配,直接返回404错误。

对应代码中的错误行:

@app.route('/api/recommendations/&lt;user_id&gt;', methods=['GET'])

Flask要求路由参数必须用原始的<参数名>格式,转义后的符号会被当作URL路径的一部分,而非参数占位符。

解决步骤

  1. 修正路由定义
    将转义后的符号替换为原始的<>,修改后的代码:
@app.route('/api/recommendations/<user_id>', methods=['GET'])
  1. 验证请求URL格式
    确保请求的URL符合路由规则,例如:
    http://localhost:8080/api/recommendations/your_actual_user_id
    将your_actual_user_id替换为Firestore中存在的真实用户ID。

  2. 确认应用运行状态
    检查Flask启动日志,确认应用确实运行在localhost:8080端口,日志中会显示类似Running on http://localhost:8080的输出,避免端口冲突或应用未正常启动。

额外检查项

  • 如果用户ID包含斜杠、点号等特殊字符,需要在路由参数中指定转换器,例如<path:user_id>(允许路径包含斜杠)或<string:user_id>(默认规则,不允许斜杠)。
  • 可以在Firebase初始化代码块添加异常捕获,避免初始化失败导致路由未加载:
    try:
        cred = credentials.Certificate(r"firebase/connection")
        firebase_admin.initialize_app(cred)
        db = firestore.client()
    except Exception as e:
        app.logger.error(f"Firebase init failed: {str(e)}")
    

内容的提问来源于stack exchange,提问作者Harsh Bhat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:49:55