Flask图片画廊开发遇werkzeug.routing.BuildError问题求助
解决Flask中werkzeug.routing.BuildError: 找不到'send_image'端点的问题
嘿,我来帮你搞定这个头疼的错误!你遇到的werkzeug.routing.BuildError本质上是Flask找不到你在模板里调用的send_image路由端点,大概率是下面几个地方出了问题,咱们一个个排查:
你还没定义
send_image路由函数
很多图片画廊教程会用专门的路由返回图片文件,你的main.py里可能只写了/gallery的路由,但漏掉了这个关键的send_image。赶紧把这段代码加上去(注意替换成你实际的图片存储目录,比如uploads):@app.route('/uploads/<filename>') def send_image(filename): # 这里的'uploads'是你的图片存放目录,要和实际路径一致 return send_from_directory('uploads', filename)另外要确保这个
uploads目录已经创建,而且Flask有访问它的权限哦。模板里的
url_for调用写错了端点名
打开你的gallery.html,看看是不是用了类似{{ url_for('send_image', filename=image.filename) }}的代码。如果这里的send_image和你路由函数的名字不匹配(比如拼写错成send_img、大小写不对),Flask就会找不到端点。一定要保证两者完全一致!路由参数和
url_for的参数名不匹配
比如如果你的路由写成了@app.route('/uploads/<img_name>'),但url_for里传的是filename=xxx,就会因为参数名对不上报错。要确保路由里的参数名(比如<filename>)和url_for里的参数键完全相同。
最后再提个小提醒:别忘了检查你的图片是不是真的存到了指定的目录里,要是文件都没在那儿,就算路由对了也没法显示图片哦!
内容的提问来源于stack exchange,提问作者Bob
相关产品推荐
相关产品推荐

