2014-12-04 27 views
4

Flask的url_for方法是否有禁用自動轉義的選項?因此,如果我有一個端點叫getUser,並且路線如下:/user/<userID>,我想打電話給url_for('getUser', userID='%')並讓它返回/user/%。目前它會跳過%symobl併發出/user/%25。我想這樣做,因爲url_for必須在模板編譯時運行,但最終的URL是在javscript腳本運行時編寫的。我將使用JavaScript字符串替換方法將/user/%轉換爲/user/abcd,但我使用的替換腳本要求您使用%符號作爲佔位符。在Flask的url_for函數中禁用字符轉義

回答

5

url_for不支持你的使用情況,但假設你使用它神社模板裏面你可以只添加一個調用replace刪除編碼:

{{ url_for('get_user', user_id='%') | replace('%25', '%') }} 

另外,如果你路過的URL各地在正常的Python代碼,你可以使用urllib.parse.unquote(或urllib.unquote如果你仍然對Python 2中):

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

提示:你不需要更換招只是爲了查詢paremeters添加到URL。例如:url_for('search',q ='一些文本')。 – compie 2016-08-26 19:10:36