在waitercaller.py 中,有如下代码:
@app.route("/newrequest/
def new_request(tid):
DB.add_request(tid, datetime.datetime.now())
return "Your request has been logged and a waiter will be with you shortly"
之前 总是对 "是谁 定义,在哪里预先定义了 变量
--ASW:
现在 了解到 :
应该是 ,就是 flask 的route decorator中的一个功能 ,
在 指定 一个路径时 ,可以 即时 (不用预先 提前 声明 变量) 的使用一个 变量 ,作为 路径上 的一段的截取,
并把截取下的这段 ,做为 有变量名称(此处是
---// 这种 明文的方式 ,用的应该是 GET
所以书后面提到要用 index 在mongodb中,要加在table_id 即
(by a browser preloading a page or a social network scraping the links a user visits to
find out more about them)
另外 通过对上面的
下面的函数 def new_request(tid)
相当于 把 tid ==就是数据库里的那个 db.tables 表中 每个 table的 "_id” 传递给 新的request 表中的 一个new key (table_id)
这个设计 ,就是为什么用 一个长串的唯一的编码 (tid) 代替 简单的,1,23,14 等 table number ,背后的商业原理是
This route matches a dynamic table ID. Since our URLs use the globally unique
table ID and not the user-chosen table number, we don't need to worry about which
restaurant owns the table. We tell our database to create a new request, which
contains the table ID and the current time. We then display a message to the patron,
notifying him or her that the request was successfully made. Note that this is the
only route for the application that our users' patrons will use. The rest of the routes
are all intended to be used only by the restaurant managers or waiters themselves.