> use waitercaller
switched to db waitercaller
> db.tables.find({"owner":"[email protected]"})
{ "_id" : ObjectId("5add13e4e17d03704d93965d"), "owner" : "[email protected]", "number" : "4", "url" : "http://bit.ly/2HBtt1h" }
{ "_id" : ObjectId("5add13e4e17d03704d93965e"), "owner" : "[email protected]", "url" : "http://bit.ly/2HBtt1h", "number" : "5" }
> db.requests.find({"owner":"[email protected]"})
{ "_id" : ObjectId("5add13ece17d03704d93965f"), "count" : 0, "table_number" : "4", "table_id" : "5add13e4e17d03704d93965d", "time" : ISODate("2018-04-22T18:59:56.084Z"), "owner" : "[email protected]" }
{ "_id" : ObjectId("5add1468e17d03710dffc1b7"), "count" : 0, "table_number" : "4", "table_id" : "5add13e4e17d03704d93965d", "time" : ISODate("2018-04-22T19:02:00.143Z"), "owner" : "[email protected]" }
上面的记录产生的过程:
1,显示 4个%s ( + 显示table_number )
2, 显示 4个%s ( + 显示count )
your id is 5add1468e17d03710dffc1b7 5add1468e17d03710dffc1b7 [email protected] 0 (第2次时)
your id is 5add160be17d0373005886bf 5add160be17d0373005886bf [email protected] 0 (第3次时 ,但此时预想 count =13)
我猜想 类似 python 中list的映射 问题,还没有及时更新 , list的变量对象没更新,但其实 数据库里其实已经更新了。
{ "_id" : ObjectId("5add160be17d0373005886bf"), "count" : 13, "table_number" : "4", "table_id" : "5add13e4e17d03704d93965d", "time" : ISODate("2018-04-22T19:08:59.873Z"), "owner" : "[email protected]" }
如何验证 我的猜想 ? 增加一行代码如下: (目的就是 刷新 存 list地址的那个变量,从 request02 -->改成 request03 ,刷新一下)
结果在 网站上 ,果然就是 按 最新的 request03为地址的list里的内容 来显示 request03·count] ,注 :现在是正确的了。
your id is 5add17eae17d0374e8818c88 5add17eae17d0374e8818c88 [email protected] 23
@app.route("/newrequest/")
def new_request(tid):
count = 0
requestid = DB.add_request(tid, datetime.datetime.now(),count)
#return "your id is %s" % str(requestid)
request02 = DB.get_request(requestid)
DB.update_request(requestid,count=23)
request03 = DB.get_request(requestid)
#count = DB.get_requestcount_max(request02['owner'])
#DB.update_request(requestid,count)
return "your id is %s %s %s %d" % (requestid ,request03['_id'],request03['owner'],int(request03['count']))
#print "%s %d" %(tittle,blockcode_passed)
#request02['table_number'] is unicode format
'''
if requestid :
request02 = DB.get_request(requestid)
count = DB.get_requestcount_max(request02['owner'],request02['table_number'])
count += 1
DB.update_request(requestid,count)
#DB.delete_request_redundancy(tid)
return "Your request has been logged and a waiter will be with you shortly"
'''
@app.route("/account/createtable", methods=["POST"])
@login_required
def account_createtable():
form = CreateTableForm(request.form)
if form.validate():
tableid = DB.add_table(form.tablenumber.data, current_user.get_id())
new_url = BH.shorten_url(config.base_url + "newrequest/" + str(tableid))
DB.update_table(tableid, new_url)
flagfromtable =1
if flagfromtable == 1:
tableid02 = DB.add_table_fulltest(form.tablenumber.data, current_user.get_id(),new_url)
#DB.add_request(tableid, datetime.datetime.now())
#DB.delete_request_redundancy(tableid)
#DB.delete_table_fulltest(tableid02)
return redirect(url_for('account'))
# the delete action must in anoter new thread. I try more and fail within the same if form.v..().
DB.delete_request_redundancy(tableid)
return render_template("account.html", createtableform=form, tables=DB.get_tables(current_user.get_id()))