Django Url模式正则表达式为令牌

时间:2017-05-24 10:34:31

标签: django django-urls

我需要在Django Url模式中传递b'//x0eaa@abc.com//x00//xf0//x7f//xff//xff//xfd//x00'之类的标记。我无法找到导致Page not found错误的匹配正则表达式。

我的网址就像/api/users/0/"b'//x0eaa@abc.com//x00//xf0//x7f//xff//xff//xfd//x00'"/

我尝试使用以下正则表达式

url(r'^api/users/(?P<username>[\w\-]+)/(?P<paging_state>[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/$', views.getUserPagination),

2 个答案:

答案 0 :(得分:0)

请在请求标题或正文中传递令牌,然后在您的视图中相应地使用。

答案 1 :(得分:0)

考虑到您的网址中存在一些静态可预测元素,例如 -

  1. API /用户/
  2. /“b
  3. 之前
  4. “/在'
  5. 之后的结尾

    所以我可以通过以下两种方式之一看到网址。正则表达式相应提到:

    1. api/users/ (一组单词,数字或连字符) /" (除换行符之外的任何字符) "/

      REGEX: ^api\/users\/([\w\d\-]+)\/"(.*)"\/$

      网址 url(r'^api\/users\/([\w\d\-]+)\/"(.*)"\/$', views.getUserPagination),

    2. api/users/ (一组单词,数字或连字符) /" (一个字符-b) '// (任何字数或数字) @ (任何字数或数字) . (任何编号单词或数字) (任意数量的单词,数字,正斜杠) '"/

      REGEX: ^api\/users\/([\w\d\-]+)\/"([a-g]'\/\/[\w\d]*@[\w\d]*.[\w\d]*[\/\w\d]*')"\/$

      网址 url(r'^api\/users\/([\w\d\-]+)\/"([a-g]'\/\/[\w\d]*@[\w\d]*.[\w\d]*[\/\w\d]*')"\/$', views.getUserPagination),

    3. 您应该可以使用以上两种中的任何一种。可以有多种方法来匹配网址中的令牌部分。因此,除非它是一个重大的安全问题,否则您可以使用第1点中提到的最简单的方法。