zoukankan      html  css  js  c++  java
  • 根据前端时间范围-后端进行时间范围数据库查询

    一、场景

    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反序列化,返回给前端查询到的数据
  • 相关阅读:
    HashMap死循环造成CPU100%
    ArrayList升级为线程安全的List
    并发容器-ConncurrentHashMap
    并发容器-概览
    不可变性final
    CAS
    原子类-Adder累加器
    hue-使用mysql作为元数据库
    yhd日志分析(二)
    yhd日志分析(一)
  • 原文地址:https://www.cnblogs.com/yblackd/p/13263109.html
Copyright © 2011-2022 走看看