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

时间:2016-07-25 07:31:41

标签: django

我从jquery发送GET请求:

http://127.0.0.1:8000/viewspecs/itemdetails?param1="+variable1+"&param2="+ variable2

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

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

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

2 个答案:

答案 0 :(得分:6)

你的网址应该是,

def specsView(request):
    param1 = request.GET['param1']
    param2 = request.GET['param2']

视图就像,

http://127.0.0.1:8000/viewspecs/itemdetails/param1/param2

如果你想传递参数,

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

然后网址将是,

def specsView(request, param1, param2):
    pass 

视图将是这样的,

{{1}}

答案 1 :(得分:0)

如果你打算使用这种方法

def specsView(request):
    param1 = request.GET['param1']
    param2 = request.GET['param2']

使用 .get() 函数

def specsView(request):
    param1 = request.GET.get('param1')
    param2 = request.GET.get('param2')

因为即使缺少参数也不会抛出任何错误 (或可选)