V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
shinerene
V2EX  ›  Python

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

  •  
  •   shinerene ·
    Xiechen · 2013-07-04 09:34:51 +08:00 · 5216 次点击
    这是一个创建于 3950 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用Flask做了一个图片展览的网站 遇到一个问题 在一个相册中 我点击了一个图片想要看这个图片的详细情况 然后 写了一个函数 是render_template到图片详细信息的页面,在函数中要怎么获得这个点击的图片的网址呢?用request的话应该怎么样做的?
    21 条回复    1970-01-01 08:00:00 +08:00
    alexrezit
        1
    alexrezit  
       2013-07-04 09:40:33 +08:00
    ajax?
    solupro
        2
    solupro  
       2013-07-04 09:53:23 +08:00
    能不能写成这样 <a href="imageinfo/imageid"><img src="....."/></a>
    然后统一在imageinfo函数通过imageid处理
    humiaozuzu
        3
    humiaozuzu  
       2013-07-04 09:55:38 +08:00
    图片难道放static目录下吗?
    shinerene
        4
    shinerene  
    OP
       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
        5
    alexrezit  
       2013-07-04 10:23:29 +08:00
    @shinerene
    说实话我没懂你什么意思...
    solupro
        6
    solupro  
       2013-07-04 10:31:30 +08:00
    @shinerene
    我也没明白,又拍云提供给你的是什么样的格式数据?
    shinerene
        7
    shinerene  
    OP
       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
        8
    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
        9
    shinerene  
    OP
       2013-07-04 12:59:10 +08:00
    @tinypig 恩 现在懂了 谢谢了
    shinerene
        10
    shinerene  
    OP
       2013-07-04 14:22:30 +08:00
    @tinypig 额 又有个问题了。。那我在
    @app.route('/gallery/<int:pic_id>')
    def pic_detail(pic_id):
    这里就这样写的么?要不要 method=['GET','POST']什么的?
    刚开始学 真的都不懂。。。
    julyclyde
        11
    julyclyde  
       2013-07-04 14:39:40 +08:00
    图片不需要POST
    shinerene
        12
    shinerene  
    OP
       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
        13
    shinerene  
    OP
       2013-07-04 14:55:30 +08:00
    @shinerene url里面的pic_num是pic_id
    Reset
        14
    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
        15
    julyclyde  
       2013-07-04 15:12:42 +08:00
    你得先搞明白你要对外提供的URI是啥样的
    展示页里有一句<img src=图片网址>
    那么展示页输出的内容是HTML
    而内嵌图片那个网址输出的是图片的数据流
    你先把这俩规划好,写好URLRoute
    shinerene
        16
    shinerene  
    OP
       2013-07-04 15:16:47 +08:00
    @Reset 恩!!!刚发现了。太二了。= 。= 。。。
    @julyclyde 原来是语法错误。。
    julyclyde
        17
    julyclyde  
       2013-07-04 15:20:10 +08:00
    下次看看运行窗口输出的内容可能就能注意到了。把debug打开
    shinerene
        18
    shinerene  
    OP
       2013-07-04 15:23:46 +08:00
    @julyclyde 恩恩~语法错误好痛苦。。。
    julyclyde
        19
    julyclyde  
       2013-07-04 16:31:45 +08:00
    @shinerene 悲剧的就是这种动态语言只有到运行时才知道错误
    shinerene
        20
    shinerene  
    OP
       2013-07-04 21:27:17 +08:00
    @julyclyde 对啊。。以前写C++ 什么的 还有编译时候的报错。。
    chuangbo
        21
    chuangbo  
       2013-07-04 21:45:23 +08:00
    文档都没认真看过。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2812 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:10 · PVG 20:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.