django和匹配的网址

时间:2015-07-25 16:58:15

标签: regex django url-pattern

我想匹配一个包含令牌的网址,例如http://example.com/success/dm00cmw1KnltYkAyJmRfKGdjJGc4\n。但是当我尝试使用以下url模式反向匹配它时出现错误

url(r'success/(?P<token>.*)/$', 'payments_system.views.success_result_view', name='success')

我收到以下错误:

Reverse for 'success' with arguments '()' and keyword arguments '{'token': 'dm00cmw1KnltYkAyJmRfKGdjJGc4\n'}' not found. 1 pattern(s) tried: ['success/(?P<token>.*)/$']

我也试过\ w +或。+但是我得到了同样的错误。我怎么能在网址上的每个角色?

1 个答案:

答案 0 :(得分:0)

python中的

\n是一个换行符。您需要转义反斜杠,即\\n,将其视为文字反斜杠,因为换行符在网址中无效,且.*与其不匹配。

最好是禁止使用此类字符,并将令牌限制为例如[A-Za-z0-9]