使用PyMongo插入文档通过Flask

时间:2013-10-16 01:10:36

标签: python mongodb flask pymongo

我试图通过一个http请求通过flask python框架传递数据,并在pymongo的帮助下将其插入到mongodb中。

我的代码是这样的:

from flask import Flask, request
import json
from pymongo import MongoClient
from bson import json_util
from bson.objectid import ObjectId

#setting up the flask app
app=Flask(__name__)

#connecting to mongoDB
client=MongoClient('localhost', 27017)
db = client["test"] #db name
col=db["test"] #collection name

@app.route('/data/insert/', methods=['GET'])
def insert():
    if request.method == 'GET':
        result = request.data('docs')
        col.insert(result)
    return "it worked!\n"

if __name__=='__main__':
    app.run()

我通过网址传递数据:

127.0.0.1:5000/data/insert/docs={"hello":"world"}

奇怪的是,当我尝试简单地以字符串格式返回时,它正在接受数据甚至吐出数据,但它需要以我缺失的方式进行转换或访问。

聚苯乙烯。我已经为括号和双引号尝试了正确的转义字符。

1 个答案:

答案 0 :(得分:2)

我猜测result = request.data('docs')正在返回一个字符串,

我相信insert需要字典,而不是字符串

也许,有点像:

result = json.loads(request.data('docs'))

上面使用python内置的json库来尝试将docs字符串解析为python数据类型。如果docs无效JSON,请记得处理此案例。