Django请求获取参数

109 投票
2 回答
193336 浏览
提问于 2025-04-16 06:58

在一个Django的请求中,我有以下内容:

POST:<QueryDict: {u'section': [u'39'], u'MAINS': [u'137']}>

我该如何获取sectionMAINS的值呢?

if request.method == 'GET':
    qd = request.GET
elif request.method == 'POST':
    qd = request.POST

section_id = qd.__getitem__('section') or getlist....

2 个回答

225

你还可以使用:

request.POST.get('section','') # => [39]
request.POST.get('MAINS','') # => [137] 
request.GET.get('section','') # => [39]
request.GET.get('MAINS','') # => [137]

这样做可以确保你不会遇到错误。如果POST或GET请求中的某个键没有定义,那么程序不会报错,而是会使用你提供的备用值(也就是.get()方法中的第二个参数)。

114

你可以像使用普通字典一样,用[]来从QueryDict对象中提取值。

# HTTP POST variables
request.POST['section'] # => [39]
request.POST['MAINS'] # => [137]

# HTTP GET variables
request.GET['section'] # => [39]
request.GET['MAINS'] # => [137]

# HTTP POST and HTTP GET variables (Deprecated since Django 1.7)
request.REQUEST['section'] # => [39]
request.REQUEST['MAINS'] # => [137]

撰写回答