pymongo readWriteMongodb

    xiaoxiao2025-03-19  30

    """ 此模块假定读写本地同一个数据库plot。 测试URL: http://localhost:8080/ 读取plot数据库的traffic集合的所有文档,并构造成json字符串返回。 http://localhost:8080/read/traffic 清空traffic集合,并重新写入一条文档,post方式。 http://localhost:8080/write/traffic """ from pymongo import MongoClient # from pprint import pprint import json import web # 以下两行代码,放到if __name__ == "__main__":下会报错。 # 不知原因。 client = MongoClient() # 确定数据库plot。 db = client.plot urls = ( r'/', 'Index', r'/read/(\w+)', 'ReadPlotTraffic', r'/write/(\w+)', 'WritePlotTraffic' ) class Index: def GET(self): return "Hello, world!" class ReadPlotTraffic: def GET(self, collectionName): web.header("Access-Control-Allow-Origin", "*") web.header('content-type', 'text/json; charset=utf-8') # doc = db[collectionName].find_one({}, {"_id": 0}) doc = db[collectionName].find({}, {"_id": 0}) features = [] for feature in doc: features.append(feature) return json.dumps({"type": "FeatureCollection", "features": features}) class WritePlotTraffic: def POST(self, collectionName): web.header("Access-Control-Allow-Origin", "*") # 删除collectionName集合。 db[collectionName].drop() # 获取前端post方式提交的数据。 i = web.input() dataDict = json.loads(i.data) # 插入多条数据。 db[collectionName].insert_many(dataDict["features"]) return "done!" if __name__ == "__main__": app = web.application(urls, globals()) app.run()
    最新回复(0)