defuploadfilefiles(request):ifrequest.method=='GET':returnHttpResponseRedirect('/uploadfilepage/')fileinfo=json.loads(request.POST['files'])client=pymongo.MongoClient('localhost',27017)db=client.cloudfiledbfilename=fileinfo["flename"]md5=fileinfo["_id"]resu=db[fileinfo['username']+"fileinfo"].find({"flename":filename})ifresu.count()==0:db[fileinfo['username']+"fileinfo"].insert(fileinfo)returnHttpResponse(json.dumps({"Uploaded":[]}))else:returnHttpResponse(resu)查询的返回值为:{u'username':u'mochen',u'chunkSize':10485760,u'flename':u'hello.txt',u'length':38,u'uploadDate':1522581711234L,u'_id':u'-1118858670-142391418912608919631449407476'},如何在Django中获取某个字段的值,比如在上面的代码else分支中,如何获得resu的username或者其他字段,上面的返回结果是在前端浏览器的开发者工具的response中显示的。
2 回答
波斯汪
TA贡献1811条经验 获得超4个赞
经实验及查看文档发现,find()函数返回的是类型为cursor的值,而find_one()返回的是数组或对象,故要访问返回的文档的某个字段时根据使用的查询函数,若为resu=db.collection.find(),则可通过如下的方式访问:resu=db[username+"fileinfo"].find()historyfilelist=[]try:foreleinresu:globalhistoryfilelisthistoryfilelist.append(ele["filename"])returnHttpResponse(json.dumps(historyfilelist))若是采用的find_one()函数,则可以直接通过字典访问,(如下面的_id获取的方式)resu=db[fileinfo['username']+"fileinfo"].find_one({"filename":filename})ifresuisNone:db[fileinfo['username']+"fileinfo"].insert(fileinfo)returnHttpResponse(json.dumps({"Uploaded":[]}))elifresu["_id"]==md5:上面方法亲测可行。
长风秋雁
TA贡献1757条经验 获得超7个赞
看你的resu是什么,一般print(resu.username)或者print(resu['username']),如果是list的就是对里面的单个元素
添加回答
举报
0/150
提交
取消