时间处理

5-11 代码总结
一 . 将数据库中的运单的信息显示在一个表格里

@route('/manager/waybill/manage')
class WaybillManageHandler(BaseHandler):
    def get(self):
        # 获取所有的运单信息
        all_waybills = self.db.Waybill.find({
        "status": 0
    })

    # 获取开始时间和终止时间
    data = []
    for i in all_waybills:
        tmp_dict = {}
        a = time.localtime(i["createtime"])
        tmp_dict["createtime"] = str(a.tm_year) + "-" + str(a.tm_mon) + "-" + str(a.tm_mday) + "/" + str(a.tm_hour) + ":" + str(a.tm_min) + ":" + str(a.tm_sec)
        a = time.localtime(i["arrivaltime"]) 
        tmp_dict["arrivaltime"] = str(a.tm_year) + "-" + str(a.tm_mon) + "-" + str(a.tm_mday) + "/" +  str(a.tm_hour) + ":" + str(a.tm_min) + ":" + str(a.tm_sec)
        tmp_dict["destination"] = i["destination"]
        tmp_dict["origin"] = i["origin"]
        tmp_dict["status" ] = i["status"]
        tmp_dict["freight"] = self.db.Freight.find_one({"_id":i["freight"]})["freight"]
        tmp_dict["user"] = self.db.User.find_one({"_id":i["user"]})["contact"]
        b = i["content"]["name"]
        c = i["content"]["count"]
        tmp_dict["content"] = str(b) + "-" + str(c)
        data.append(tmp_dict)

    return self.render("waybill-manage.html", data=data, all_waybills=all_waybills)

1.根据运单的状态从数据库中取出status=0的全部运单信息
2. 首先将通过循环将运单信息依次处理,通过虚构一个字典放入将要展示在前端的数据
3. 依次处理要显示在页面的运单信息
1)数据createtime , arrivaltime

    将时间戳转换成时间:
        通过 time.local(所得时间戳)
        可有,a = time.localtime(i["createtime"])    (ps: arrivaltime方法一样)
        通过字符串连接处理所得数据 
        tmp_dict["createtime"] = str(a.tm_year) + "-" + str(a.tm_mon) + "-" + str(a.tm_mday) + "/" + str(a.tm_hour) + ":" + str(a.tm_min) + ":" + str(a.tm_sec)

2)表Waybills直接存储的数据,无需转换,只需依次给字典赋值

    tmp_dict["destination"] = i["destination"]
    tmp_dict["origin"] = i["origin"]
    tmp_dict["status" ] = i["status"]

3)取出与其他表相关联的数据

    tmp_dict["user"] = self.db.User.find_one({"_id":i["user"]})["contact"]
    b = i["content"]["name"]
    c = i["content"]["count"]
    tmp_dict["content"] = str(b) + "-" + str(c)
    通过 _id 找到与该数据相关联的数据表,再通过键值对获得所需数据

二. 页面搜索框实现通过 origin, destination 对表格内容的搜索

@route('/manager/waybill/find')

class WaybillFindHandler(BaseHandler):

def get(self):
    origin = self.get_argument("origin")
    destination = self.get_argument("destination")
    _filter = {"$and":[{"origin": origin},{"destination": destination},{"status": 0}]}

    if origin == "" and destination == "":
        #显示所有
        return self.redirect('/manager/waybill/manage')

    if origin == "" and destination != "":
        #显示特定目的地
        _filter = {"$and":[{"destination": destination},{"status": 0}]}
    if origin != "" and destination == "":
        _filter = {"$and":[{"origin":origin}, {"status": 0}]}

    all_waybills = self.db.Waybill.find(_filter)

    data = []
    if all_waybills.count() != 0:
        for i in all_waybills:
            tmp_dict = {}
            a = time.localtime(i["createtime"])
            tmp_dict["createtime"] = str(a.tm_year) + "-" + str(a.tm_mon) + "-" + str(a.tm_mday) + "/" + str(a.tm_hour) + ":" + str(a.tm_min) + ":" + str(a.tm_sec)
            a = time.localtime(i["arrivaltime"])
            tmp_dict["arrivaltime"] = str(a.tm_year) + "-" + str(a.tm_mon) + "-" + str(a.tm_mday) + "/" +  str(a.tm_hour) + ":" + str(a.tm_min) + ":" + str(a.tm_sec)
            tmp_dict["destination"] = i["destination"]
            tmp_dict["origin"] = i["origin"]
            tmp_dict["status" ] = i["status"]
            tmp_dict["freight"] = self.db.Freight.find_one({"_id":i["freight"]})["freight"]
            tmp_dict["user"] = self.db.User.find_one({"_id":i["user"]})["contact"]
            b = i["content"]["name"]
            c = i["content"]["count"]
            tmp_dict["content"] = str(b) + "-" + str(c)
            data.append(tmp_dict)

        return self.render("waybill-manage.html", data=data, all_waybills=all_waybills, errcode=0)
    else:
        return self.render("waybill-manage.html", data=data, errcode=1)

1.通过self.get_argument(“name”)获得已选的出发地,目的地

    origin = self.get_argument("origin")
    destination = self.get_argument("destination")

2. 通过 判断 origin,destination的值来将搜索内容进行分类,

1)origin != "" and destination != ""   #显示所有
    _filter = {"$and":[{"origin":origin},{"destination":destination},{"status":0}]}


2) origin != "" and destination == ""   #显示特定目的地
     _filter = {"$and":[{"origin":origin},{"status":0}]}

3)origin == "" and destination != ""   #显示特定目的地
    _filter = {"$and":[{"destination":destination},{"status":0}]}

3. 将搜索条件分类完毕,通过它获得取出数据库中的全部搜索内容

all_waybills = self.db.Waybill.find(_filter)

4. 最后获得了搜索的全部运单信息。操作就回到了将一个数据表单展示在前端页面的工作,具体如上(一)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值