从QueryDict中提取项目

egi*_*dra 19 python django

我有一个如下所示的querydict:

<QueryDict: {u'{"content":"aa","id":"1"}': [u'']}>
Run Code Online (Sandbox Code Playgroud)

我该如何提取出来id

我尝试过queryDictExample.get("id"),但它没有用.

Dan*_*man 46

看起来您的客户端正在发布JSON而不是formencoded数据.而不是访问request.POST,使用request.body(request.raw_post_data在1.3或更低版本中)并用于json.loads()转换为dict.

  • 谢谢很多朋友。你救了我的屁股。 (2认同)

Spi*_*ail 7

也许这并不完全适用于你.但是当我搜索这个时,你的问题是第一个Stackoverflow问题.

我只想在Django中获取基本的POST数据.所以只是使用GET对我来说很好.正如其他人所说,可能更容易更好地格式化创建查询的任何脚本.

基本上我有一个AJAX正在向Django发帖,POST看起来有点像这样:

params = name=somename&data=abcdefg
http.send(params);
Run Code Online (Sandbox Code Playgroud)

然后在我的view.py中,我这样做了

def somefuntion(request):
    if request.method == 'POST':
        log.info('POST applied')
        alldata=request.POST
        log.debug(alldata)
        data = alldata.get("data", "0")
        name = alldata.get("name", "0")
        log.info("POST name: " + name)
        log.info("POST data: " + data)
Run Code Online (Sandbox Code Playgroud)

alldata的输出是:

<QueryDict: {u'data': [u'abcdefg'], u'name': [u'somename']}>
Run Code Online (Sandbox Code Playgroud)

并且get命令给出

name: somename
data: abcdefg
Run Code Online (Sandbox Code Playgroud)


frn*_*nhr 7

这适用于多个值:

dict(MyDict.lists())
Run Code Online (Sandbox Code Playgroud)

字典键是查询变量,字典值是查询值列表。