加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Flask的url_for函数中禁用字符转义

发布时间:2020-12-16 22:55:09 所属栏目:Python 来源:网络整理
导读:Flask的url_for方法是否有禁用自动转换的选项?因此,如果我有一个名为getUser的端点,其路由如下:/ user / userID,我想调用url_for(‘getUser’,userID =’%’)并让它返回/ user /%.目前它将逃脱%symobl并给出/ user /%.我想这样做是因为url_for必须在模
Flask的url_for方法是否有禁用自动转换的选项?因此,如果我有一个名为getUser的端点,其路由如下:/ user /< userID>,我想调用url_for(‘getUser’,userID =’%’)并让它返回/ user /%.目前它将逃脱%symobl并给出/ user /%.我想这样做是因为url_for必须在模板编译时运行,但最终的URL是在运行javscript脚本时组成的.我将使用 javascript字符串替换方法将/ user /%转换为/ user / abcd,但我正在使用的替换脚本要求您使用%符号作为占位符.

解决方法

url_for不支持您的用例,但假设您在Jinja模板中使用它,您可以添加对 replace的调用以删除编码:
{{ url_for('get_user',user_id='%') | replace('%25','%') }}

或者,如果您在普通Python代码中传递URL,则可以使用urllib.parse.unquote(如果您仍在使用Python 2,则使用urllib.unquote):

url = url_for('get_user','user_id'='%')
url = unquote(url)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读