一、場景
- 從前端獲取時間范圍
- 時間范圍作為參數傳遞給后端
- 后端將時間范圍參數轉換datetime類型
- 根據時間范圍進行數據庫查詢
二、功能實現
- 前端獲取時間范圍
<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>
- 后端接受參數
- 個人采用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
- 數據庫查詢方法
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
- queryset反序列化,返回給前端查詢到的數據