web项目043-----房屋搜索参数接受&校验

本文分析了房屋搜索功能中URL参数的变化,包括aid(城区)、sd和ed(入住及离开日期)、sk(筛选条件)以及p(页码)。针对接收到的字符串类型日期参数,需要转换为Datetime类型以匹配数据库模型。同时,通过assert进行参数校验,确保日期、区域、sk和page参数的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

房屋搜索参数接受&校验 

我们点击搜索,

发现他的url后面是用?拼接的

我们把这里换成东城区,来看一下两个url有什么区别

他们的aid后面的值发生了变化,说明aid对应的就是城区的数据

我们选择入住时间,和离开时间,在来搜索一下看一下url发生了什么变化

sd,ed后面有了数据,对应的是入住日期和离开日期

我们再点击入住最多

发现sk后面有了值

通过查看网页的html可以看到每一个都有对应的值

p就不用想了,page,第几页

到目前我们就分析完了url

我们接下来改编写路由了

@api.route("/houses", methods=["GET"])
def get_house_list():
    """
    房屋的搜索页面
    :param: aid sd ed sk p
    :return: 符合条件的房屋
    """

 我们查看这块的js文件

进行分析,tatal_page应该页码总页,如果是0的话就会输出暂时没有符合您查询的房屋信息

我们接下来接受参数

我们可以查看一下日期是什么类型的数据,是字符串

但是我们查看订单模型,发现其实结束时间的数据类型都是Datetime类型的

所以我们要进行转换

通过datetime.strptime()这个方法把字符串转换为datetime数据类型

校验日期参数:

这里面我们使用了断言,assert,就是如果assert后面的代码正确,正常执行,如果错误就抛出异常,如assert 1>2就会抛出异常

校验区域参数:

校验sk参数:

因为sk有好几个,所以我们创建一个列表

校验page参数:

如果有人给page传入的参数我是字符串aaa或者什么的,通过int转换就会报错,我们这时直接领page=1就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值