根據前端時間范圍-后端進行時間范圍數據庫查詢


一、場景

  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反序列化,返回給前端查詢到的數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM