输入题目:
今天先完成服务端:
主要使用了pymongo 进行相关的逻辑处理。
上代码:
import copyimport flask,pymongofrom flask import Flask,jsonify,requestapp = Flask(__name__)def insert_mongo(list1): myclient = pymongo.MongoClient('mongodb://127.0.0.1:27017/') mydb= myclient.client["lukedb3"] mycol = mydb["site"] x = mycol.insert_many(list1) print(x.inserted_ids) return "success"def get_mongo(): myclient = pymongo.MongoClient('mongodb://127.0.0.1:27017/') mydb= myclient.client["lukedb3"] mycol = mydb["site"] list2 =[] for x in mycol.aggregate([{'$sample':{'size':2}}]):#随机取2个数据 del x['_id'] list2.append(x) print(list2) return list2,"success"def getall_mongo(): myclient = pymongo.MongoClient('mongodb://127.0.0.1:27017/') mydb= myclient.client["lukedb3"] mycol = mydb["site"] list3 =[] for x in mycol.find({},{"_id":0}):# 找到所有的数据,并把“_id”这列删除 list3.append(x) print(list3) return list3,"success"def update_mongo(listold,listnew): myclient = pymongo.MongoClient('mongodb://127.0.0.1:27017/') mydb= myclient.client["lukedb3"] mycol = mydb["site"] for x in range(0,len(listold)):#把id项目删除 myquery = listold[x] newvalues = {"$set":listnew[x]} mycol.update_one(myquery,newvalues) return "success"@app.route('/')def hello_world(): return 'Hello World!'@app.route('/get',methods=['POST'])def get():#调用查询逻辑 #获取题目10个 #获取难度3个容易,5个中等,2个难题 list2,info = get_mongo() return jsonify({"info":info,"data":list2})@app.route('/append',methods=['GET','POST'])def append():#调用插入逻辑 list1 = request.json["list"] #dic1 = {"Q":"How old is Republic of China1","A":"73","D1":"72","D2":"74","D3":"111"} #list1 =[dic1] list2 = copy.deepcopy(list1) info = insert_mongo(list1) #print(info) #print(dic1) #print(list2) return jsonify({"info":info,"data":list2})@app.route('/getall', methods=['POST'])def getall():# 调用抽取接口,把题库数据读出来 list3,info = getall_mongo() return jsonify({"whole question lib is":list3,"info":info})@app.route('/update', methods=['POST'])def update():# 调用update 接口,修改题目 listold = request.json["listold"] listnew = request.json["listnew"] info = update_mongo(listold,listnew) return jsonify({"info": info,"oldinfo":listold,"newinfo":listnew})if __name__ =='__main__': app.run(host='0.0.0.0',port=8008,debug = True)
这里用了几个函数:
mycol.aggregate([{'$sample':{'size':2}}]):# 随机查询2个数据
上面用到了mongodb 的随机查询,aggregate() 函数,从mongodb随机取几个数据:
参考下面:https://mongoing.com/docs/reference/operator/aggregation/sample.html
2.更新函数:
myquery = listold[x]
newvalues = {"$set":listnew[x]}
mycol.update_one(myquery,newvalues)
update_one() 函数,首先搜索满足条件的文档,然后用new values 对这个文档做update。
3.查找所有数据
mycol.find({},{"_id":0})
find()函数里面的意思是:找到所有的数据,对找到的数据,并把“_id”这列删除
效果图:
append 接口
postman插入:
插入效果:
后端返回数据:
2.收集全量的逻辑
getall 接口
后端返回
3.随机获取接口
get 接口
每次随机取2个
看到两次取到的数据不一致。
两次取得的数据不一样
4.update 接口
后端展示:
调用getall接口
看看已经修改过了来了吗?
的确修改过来了:
留言与评论(共有 0 条评论) “” |