flask怎么返回不同名字的图片

我需要根据用户输入返回不同名字的图片,但是url_for已经使用了一对花括号了,请问怎么才能够返回不同的图片呢?
我的模板向下面这样:

<div class="panel panel-default">
    <div class="panel-heading">3D降维图示</div>
    <div class="panel-body">
        <img src="{{ url_for('static', filename='res.png') }}">
    </div>
</div>
阅读 3.3k
3 个回答

自己抖机灵,想了一个办法:

<div class="panel panel-default">
    <div class="panel-heading">3D降维图示</div>
    <div class="panel-body">
        <img src="{{ url_for('static', filename='imgs/') }}{{ filename }}">
    </div>
</div>

方法1: 使用jinja2模板
params = {}
params.imgsrc = "static/res.png"
render_template("xxx.html", params)

<img src={'params.imgsrc'}>

方法2:ajax请求的方式
自己实现一个post请求,页面加载出来后ajax请求一下,根据返回结果调整img src属性

认真的看了你的问题和大家的评论,我才弄明白你的问题重点就是一个图片地址的变量问题,这个问题其实很简单。

<img src="{{ url_for('static', filename='res.png') }}">

这行代码中的 filename= 后面可以直接加变量,比如成为如下形式:

<img src="{{ url_for('static', filename=pic_url) }}">

是不是非常简单,不加单引号,双引号,就是一个变量。至于 pic_url 变量,这个需要你在 view.py 试图函数中传入,或者直从 g 变量中来。

希望你能够明白。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题