Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用烧瓶中的字符转义';函数的url__Url_Routes_Flask_Escaping - Fatal编程技术网

禁用烧瓶中的字符转义';函数的url_

禁用烧瓶中的字符转义';函数的url_,url,routes,flask,escaping,Url,Routes,Flask,Escaping,Flask的url\u for方法是否有禁用自动转义的选项?因此,如果我有一个名为getUser的端点,路径如下:/user/,我想调用url\u('getUser',userID='%'),并让它返回/user/%。目前,它将退出%symobl并发出/user/%25。我想这样做是因为的url\u必须在模板编译时运行,但最终的url是在javscript运行时生成的。我将使用javascript字符串替换方法将/user/%转换为/user/abcd,但我使用的替换脚本要求您使用%符号作为占位

Flask的
url\u for
方法是否有禁用自动转义的选项?因此,如果我有一个名为
getUser
的端点,路径如下:
/user/
,我想调用
url\u('getUser',userID='%')
,并让它返回
/user/%
。目前,它将退出%symobl并发出
/user/%25
。我想这样做是因为的
url\u必须在模板编译时运行,但最终的url是在javscript运行时生成的。我将使用javascript字符串替换方法将
/user/%
转换为
/user/abcd
,但我使用的替换脚本要求您使用
%
符号作为占位符。

的url\u不支持您的用例,但假设您在Jinja模板中使用它,您可以添加一个调用来删除编码:

{{ url_for('get_user', user_id='%') | replace('%25', '%') }}
或者,如果您使用普通Python代码传递URL,您可以使用(或者如果您仍然使用Python 2):


提示:只需将查询参数添加到url,不需要替换技巧。例如:url_for('search',q='some text')。我传入的
\u锚
url_for
正在编码
unquote
为我解决了这个问题。谢谢
url = url_for('get_user', 'user_id'='%')
url = unquote(url)