在django中将URL中的多个参数作为GET请求发送?

Nip*_* Kc 1 django

我从jquery发送GET请求:

http://127.0.0.1:8000/viewspecs/itemdetails?param1="+variable1+"&param2="+ variable2
Run Code Online (Sandbox Code Playgroud)

django中此部分的urls.py文件类似于:

url(r'^viewspecs/itemdetails?param1=(?P<specs_search_item>[\w\+%_ ./-]+)&param2=(?P<item_price>[0-9])$', views.specsView),
Run Code Online (Sandbox Code Playgroud)

当我访问该地址时,我得到一个页面而不是(404)错误.为什么?

Nis*_*ede 7

你的网址应该是,

url(r'^viewspecs/itemdetails/$', views.specsView),
Run Code Online (Sandbox Code Playgroud)

并且视图会像,

def specsView(request):
    param1 = request.GET['param1']
    param2 = request.GET['param2']
Run Code Online (Sandbox Code Playgroud)

如果你想传递参数,

http://127.0.0.1:8000/viewspecs/itemdetails/param1/param2
Run Code Online (Sandbox Code Playgroud)

然后网址将是,

url(r'^viewspecs/itemdetails/(?P<param1>[\w-]+)/(?P<param2>[\w-]+)/$', views.specsView),
Run Code Online (Sandbox Code Playgroud)

视图会是这样的,

def specsView(request, param1, param2):
    pass 
Run Code Online (Sandbox Code Playgroud)

  • 谢啦!这解决了我的问题。今天学到了新东西。顺便说一句,我发现第一种方法更容易。 (2认同)