根据前端时间范围-后端进行时间范围数据库查询

一、场景

  1. 从前端获取时间范围
  2. 时间范围作为参数传递给后端
  3. 后端将时间范围参数转换datetime类型
  4. 根据时间范围进行数据库查询

二、功能实现

  1. 前端获取时间范围
    <form action="/datetime" method="post">
         <input type="date" value="2020-01-01" name="s_time"/>
         <input type="date" value="2020-01-10" name="e_time"/>
         <input type="submit" value="查询">
    </form>
  2. 后端接受参数
    • 个人采用tornado框架;不同python_web框架获取参数不同,根据自己框架修改获取参数
    import datetime
    
    class DateTimeHandler(BaseHandler):
        def get(self):
            # 渲染template给前端
            self.render("datetime.html", title="Method: GET, This is DateTimeHandler")
    
        def post(self):
            # 从前端form表单 获取时间范围参数
            start_time = self.get_argument("s_time")
            end_time = self.get_argument("e_time")
            s_time = str_to_datetime(start_time)  # 前端获取参数为str格式,将str转换datetime类型,方法在下面
            e_time = str_to_datetime(end_time)
            queryset = OrderInfo.get_by_date_scope(s_time, e_time)
            self.write("ok")
    
    def str_to_datetime(str_time):
        # str_time = '2020-01-01'
        date_time = datetime.datetime.strptime(str_time, '%Y-%m-%d')
        return date_time
  3. 数据库查询方法
    def get_by_date_scope(s_time, e_time):
        queryset = db.session.query(OrderInfo).filter(OrderInfo.c_time >= s_time).filter(OrderInfo.c_time <= e_time).all()
        return queryset
  4. queryset反序列化,返回给前端查询到的数据

猜你喜欢

转载自blog.csdn.net/weixin_44070137/article/details/107196273