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

Flask REST API访问返回404 Not Found问题求助

解决Flask REST API 404 Not Found问题

首先,你的404错误核心原因是路由参数的转换器不匹配:

你定义的路由是:

@app.route('/imagelookup/<string:img>/', methods=['GET'])

Flask的string转换器默认只能匹配**不包含斜杠(/)**的字符串,但你传入的img参数是完整的图片URL(比如https://image.dhgate.com/0x0s/...),里面包含了多个斜杠,所以路由无法匹配,直接返回404。

修复步骤

1. 替换路由参数转换器为path

把路由改成使用path转换器,它可以匹配包含斜杠的任意字符串:

@app.route('/imagelookup/<path:img>/', methods=['GET'])

2. 确保访问URL与路由格式一致

你的路由末尾有一个斜杠(/),所以访问时需要在URL末尾加上斜杠,比如:

http://127.0.0.1:5000/imagelookup/https://image.dhgate.com/0x0s/f2-albu-g6-M01-09-33-rBVaR1qZVlWAdONFAALxr6pjOMU350.jpg/2018-new-arrival-hot-sexy-summer-beach-bikini.jpg/

或者你也可以去掉路由末尾的斜杠,同时访问时也不加,这样两种方式都能匹配(Flask默认会自动重定向,但为了避免混淆,建议保持一致):

@app.route('/imagelookup/<path:img>', methods=['GET'])

额外优化建议

  • 处理正则提取的空值情况:如果re.findall没有找到匹配内容,extractName会未定义,导致报错。可以初始化extractName为空列表,比如:
extractName = []
for eachElement in findElement:
    validEl = eachElement
    newregex = r'value="(.*?)"'
    newpattern = re.compile(newregex)
    extractName = re.findall(newpattern, validEl)
  • 使用requests库替代urllib,代码会更简洁易读,处理Cookie和请求头也更方便。

这样修改后,你的路由就能正确匹配带斜杠的图片URL,返回预期的JSON响应了。

内容的提问来源于stack exchange,提问作者Israel Obanijesu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:21:44