在Django请求中,我有以下内容:
POST:<QueryDict: {u'section': [u'39'], u'MAINS': [u'137']}>
如何获取section
和MAINS
的值?
if request.method == 'GET':
qd = request.GET
elif request.method == 'POST':
qd = request.POST
section_id = qd.__getitem__('section') or getlist....
答案 0 :(得分:165)
您也可以使用:
request.POST.get('section','') # => [39]
request.POST.get('MAINS','') # => [137]
request.GET.get('section','') # => [39]
request.GET.get('MAINS','') # => [137]
使用此功能可确保您不会收到错误消息。如果没有定义带有任何键的POST / GET数据,则不会引发异常,而是使用回退值(将使用.get()的第二个参数)。
答案 1 :(得分:70)
您可以使用[]
从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]
答案 2 :(得分:0)
这些查询当前以两种方式完成。如果要访问查询参数(GET),可以查询以下内容:
http://myserver:port/resource/?status=1
request.query_params.get('status', None) => 1
如果要访问POST传递的参数,则需要使用以下方式进行访问:
request.data.get('role', None)
使用“ get()”访问字典(QueryDict),可以设置默认值。在上述情况下,如果未告知'状态'或'角色',则值为None。