Flask-Restful:通过POST请求将列表传递到MongoDB

萨米尔·赛义德(Samir Said)

我正在使用Python Flask-Restful w / pymongo为新的Web服务构建API。

一个样例的MongoDB文档如下所示:

{ domain: 'foobar.com',
  attributes: { web: [ akamai,
                       google-analytics,
                       drupal,
                       ... ] } }


进口:

from flask import Flask, jsonify
from flask.ext.restful import Api, Resource, reqparse
from pymongo import MongoClient


班级:

class AttributesAPI(Resource):
def __init__(self):
    self.reqparse = reqparse.RequestParser()
    self.reqparse.add_argument('domain', type = str, required = True, help = 'No domain given', location='json')
    self.reqparse.add_argument('web', type = str, action='append', required = True, help = 'No array/list of web stuff given', location = 'json')
    super(AttributesAPI, self).__init__()

def post(self):
    args = self.reqparse.parse_args()
    post = db.core.update(  {'domain': args['domain']},
                            {'$set':{'attr': {  'web': args['web'] }}},
                            upsert=True)
    return post


当我用CURL发布时,我使用以下代码:

curl -i -H "Content-Type: application/json" -X POST -d '{"domain":"foobar", "web":"akamai", "web":"drupal", "web":"google-analytics"}' http://localhost:5000/v1/attributes


但是,这就是保存在我的文档中的内容:

{ "_id" : ObjectId("5313a9006759a3e0af4e548a"), "attr" : { "web" : [  "google-analytics" ] }, "domain" : "foobar.com"}


它仅存储curl中给定的'web'的最后一个值。我还尝试按reqparse文档中所述将CLI命令与多个-d参数一起使用,但是会引发400-错误请求错误。

有什么想法为什么为什么只保存最后一个值而不是将所有值保存为列表?

马丁·彼得斯(Martijn Pieters)

在JSON对象和Python字典中,名称是唯一的您无法在web此处重复该密钥并期望它能正常工作。请改用一个 web键,并将值设为列表:

{"domain": "foobar", "web": ["akamai", "drupal", "google-analytics"]}

并且应该这样处理。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Python Flask将数据从GET请求传递到POST请求

来自分类Dev

通过POST从React到Flask获取数据

来自分类Dev

将URL传递到Flask API端点

来自分类Dev

将参数从python / flask传递到javascript

来自分类Dev

将变量从Flask传递到JavaScript

来自分类Dev

将Flask值传递到HTML

来自分类Dev

将参数从python / flask传递到javascript

来自分类Dev

将flask变量从javascript传递到html

来自分类Dev

使用Restful API和Flask时如何将列表作为参数传递

来自分类Dev

Flask RESTful POST JSON失败

来自分类Dev

无法通过Flask-RESTful实现PUT请求

来自分类Dev

带Flask Restful的POST请求导致TypeError

来自分类Dev

javascript + flask - 通过发布请求将 json 数组传递给服务器的正确方法?

来自分类Dev

Flask:使用 AJAX 的 POST 请求

来自分类Dev

Flask-restful:将复杂对象编组到json

来自分类Dev

使用Flask将通过POST请求接收的数据打印到本地服务器

来自分类Dev

通过Flask发送POST数据

来自分类Dev

通过Flask发送POST数据

来自分类Dev

Flask Restful搜索查询

来自分类Dev

Flask-RESTful别名

来自分类Dev

Python Flask API Restful

来自分类Dev

Flask + Flask-RESTful:将特定变量与路由匹配

来自分类Dev

Flask-restful:请求返回错误的值

来自分类Dev

通过jQuery $ .ajax POST将当前HTML状态保存到文件到Flask视图

来自分类Dev

python flask请求钩子

来自分类Dev

python flask请求钩子

来自分类Dev

Python Flask 错误请求

来自分类Dev

使用Flask将请求发布到Web服务器

来自分类Dev

通过URL将变量传递给Flask应用