在django中使用URL中的管道分隔字符串

时间:2018-03-17 15:24:29

标签: python django

我正在尝试将管道分隔的字符串作为django中我的url中的参数传递,但它无法路由到相应的视图。

这是我的管道分隔字符串:

  

" main / 1 | adel | 1 | 1989-09-19 | 1 | 1 |测试警报| 2018-03-16-09-26-00 |测试模块| 1 | 1 |测试遇到&# 34;

这是我的网址格式:

from django.conf.urls import url
from django.views.generic import RedirectView
from alerter import views

app_name = 'alerter'

urlpatterns = [

    url(r'^main/(?P<message>[a-zA-Z0-9_]+)/$',
    views.TheView.as_view({'get': 'view'}), name = 'main'),



]

1 个答案:

答案 0 :(得分:1)

\w doesn't match |

  

对于Unicode(str)模式:

     

匹配Unicode字符;这包括大多数可以成为任何语言单词的一部分的字符,以及数字和下划线。如果使用ASCII标志,则只匹配[a-zA-Z0-9_](但标志会影响整个正则表达式,因此在这种情况下使用显式[a-zA-Z0-9_]可能是更好的选择。)

调整您的模式,例如通过捕获[a-zA-Z0-9_|]

url(r'^main/(?P<message>[a-zA-Z0-9_|]+)/$',
    views.TheView.as_view({'get': 'view'}), name='main')