yblackd 2020-07-07 20:51 原文
一、场景
- 从前端获取时间范围
- 时间范围作为参数传递给后端
- 后端将时间范围参数转换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反序列化,返回给前端查询到的数据
推荐阅读