2015-12-22 79 views
2

需要URL以分号什么模式我有这样我的网址在Django

http://www.example.com/user;age=9;name=dsds-dsds-ddd 

链接现在我有POST

,此网址
url(r'^user$', 
    views.CreateView.as_view(), 
    name='user-create') 

现在我也想匹配以上带分号分隔参数的url。

我无法找到

  1. 什么URL模式定义
  2. 如何抓住鉴于这些参数

我想这

url(r'^user;(?P<params>)$', 
+0

你不能使用GET查询或POST数据吗? –

回答

1

检查Django的启用APPEND_SLASH功能,它可能迫使你添加一个sl灰/在可能成为问题的每个URL的末尾。

尝试这样做:

url(r'^user/(?P<myparams>[\w;.]/$', 
    views.CreateView.as_view(), 
    name='user-create') 

你在这种情况下,URL必须是这样的:

http://www.example.com/user/;age=9;name=dsds-dsds-ddd 

Django会自动在末尾附加一个/,并将其转换为:

http://www.example.com/user/;age=9;name=dsds-dsds-ddd/ 
+0

任何方式没有添加斜杠 –

+0

@JohnKaff是的,但它可能是危险的只是为了信息的缘故,这将做它'url(r'^ user(?P [\ w ;. ]',views.CreateView.as_view(),name ='user-create')'或者如果你喜欢@doniyor方法来处理它,你可以像'url(r'^ user',views.test) – anand

1

urls.py

url(r'^user/', views.test) 

views.py

from urllib import unquote 

def test(request): 
    url_with_semicolon = unquote(request.get_full_path()) 
    print url_with_semicolon.split(';')[1:] 
    return HttpResponse('ok') 

输入:

http://www.example.com/user/age=9;name=dsds-dsds-ddd 

输出:

[u'age=9', u'name=dsds-dsds-ddd'] 

希望,这可以帮助你

+0

是否有任何方式没有添加斜杠 –