Flask 如何 通过request 获得点击的图片的网址?

2013-07-04 09:34:51 +08:00
 shinerene
用Flask做了一个图片展览的网站 遇到一个问题 在一个相册中 我点击了一个图片想要看这个图片的详细情况 然后 写了一个函数 是render_template到图片详细信息的页面,在函数中要怎么获得这个点击的图片的网址呢?用request的话应该怎么样做的?
5216 次点击
所在节点    Python
21 条回复
alexrezit
2013-07-04 09:40:33 +08:00
ajax?
solupro
2013-07-04 09:53:23 +08:00
能不能写成这样 <a href="imageinfo/imageid"><img src="....."/></a>
然后统一在imageinfo函数通过imageid处理
humiaozuzu
2013-07-04 09:55:38 +08:00
图片难道放static目录下吗?
shinerene
2013-07-04 10:10:13 +08:00
@alexrezit
@solupro
@humiaozuzu 图片是用又拍云托管的 所以是一个http的网址 相册中的是缩略图 url:.../gallery 然后 我想要在相册中点击这个图片之后 能够进入到了一个这张图片的详细页面 有原图 url比如说...gallery/01.jpeg 为了在这个详细页面显示原图 那么我要获得原图的地址 来给函数<a href="url_for{{ pic_detail }}"> 然后函数给html模板页面 我现在就是不知道怎么在html中获得img src的内容
alexrezit
2013-07-04 10:23:29 +08:00
@shinerene
说实话我没懂你什么意思...
solupro
2013-07-04 10:31:30 +08:00
@shinerene
我也没明白,又拍云提供给你的是什么样的格式数据?
shinerene
2013-07-04 10:42:05 +08:00
@solupro 又拍云的是比如一个链接啊 比如说http://a.b.c/1.jpeg

@alexrezit 我的意思就是我用Flask写了个网站 然后有一个函数 需要一个我的网站生成的网页中的我点击的图片的网址 我不知道怎么去获得这个网址给我的函数
<a href="url_for{{ pic_detail }}"><img src="http://a.b.c/1.jpeg"></a>
tinypig
2013-07-04 11:08:05 +08:00
@shinerene
2L不是说的很清楚了么。。

<a href="{{url_for('pic_detail', pic_id=xx)}}"></a>
你在数据库里难道没有pic_id 对应图片地址么.
通过传递pic_id来判断
shinerene
2013-07-04 12:59:10 +08:00
@tinypig 恩 现在懂了 谢谢了
shinerene
2013-07-04 14:22:30 +08:00
@tinypig 额 又有个问题了。。那我在
@app.route('/gallery/<int:pic_id>')
def pic_detail(pic_id):
这里就这样写的么?要不要 method=['GET','POST']什么的?
刚开始学 真的都不懂。。。
julyclyde
2013-07-04 14:39:40 +08:00
图片不需要POST
shinerene
2013-07-04 14:54:36 +08:00
@julyclyde 额 那我这样写了之后模板里面是这样的
<a href = "url_for{{ 'pic_detail',pic_id=info.pic_id }}"><img src="blablabla"></a>
.py文件里面是
@app.route('/gallery/<int:pic_id>')
def pic_detail(pic_id):
code here
return render_template('pic_detail.html',pic_info = info)

可是当我点击图片的时候显示的是404

然后url是这样的:
http://localhost:5000/url_for('pic_detail',%20'pic_num=info.pic_num')

问题到底出在哪里呢
shinerene
2013-07-04 14:55:30 +08:00
@shinerene url里面的pic_num是pic_id
Reset
2013-07-04 15:12:36 +08:00
@shinerene

<a href = "{{ url_for('pic_detail',pic_id=info.pic_id )}}"><img src="blablabla"></a>

语法错误,{{ url_for() }}
julyclyde
2013-07-04 15:12:42 +08:00
你得先搞明白你要对外提供的URI是啥样的
展示页里有一句<img src=图片网址>
那么展示页输出的内容是HTML
而内嵌图片那个网址输出的是图片的数据流
你先把这俩规划好,写好URLRoute
shinerene
2013-07-04 15:16:47 +08:00
@Reset 恩!!!刚发现了。太二了。= 。= 。。。
@julyclyde 原来是语法错误。。
julyclyde
2013-07-04 15:20:10 +08:00
下次看看运行窗口输出的内容可能就能注意到了。把debug打开
shinerene
2013-07-04 15:23:46 +08:00
@julyclyde 恩恩~语法错误好痛苦。。。
julyclyde
2013-07-04 16:31:45 +08:00
@shinerene 悲剧的就是这种动态语言只有到运行时才知道错误
shinerene
2013-07-04 21:27:17 +08:00
@julyclyde 对啊。。以前写C++ 什么的 还有编译时候的报错。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/74702

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX