Python-Flask-查询字符串需要在用户上传的图像文件上包含'?q ='

问题描述

我正在尝试将日期戳查询字符串添加用户上传的图像中(以绕过缓存)。

current_user.image_file = str(current_user._id) + str(file_ext) + '?q='+ dt_stmp

唯一的麻烦是它最终对这些字符进行了URL编码,并按要求显示出来

    • [09 / Sep / 2020 10:41:07]“ GET /static/profile_pics/1.jpg%5C%3Fq%5C%3DWed%20Sep%20%209%2010:41:07%202020 HTTP / 1.1 “ 404

如您所见,它添加了百分号以将字符编码为安全字符串的一部分。我缺少一种转义这些字符的方法,因此输出更像

GET /static/profile_pics/1.jpg?q=Wed%20Sep%20%209%2010:41:07%202020 HTTP / 1.1

希望如此,在此先感谢您可能提供的任何建议。

解决方法

我想我知道这里发生了什么,因为它是文件名的一部分,它将作为url_for方法的一部分转义那些字符

    image_file = url_for('static',filename='profile_pics/' + current_user.image_file)  

我在想解决这个问题的方法是对数据库添加一个date_modified值并将其附加到url_for方法的末尾吗?