get多参数请求的问题

来源:7-6 列表筛选功能

大副大

2018-10-07

问题一:例如下面这个链接地址,类别选的是全部,生成的url结果里面ct为空,既然ct为空为什么会显示所有的机构呢?
http://127.0.0.1:8000/org_list?city=1&ct=
下面代码中不是要category存在才会filter吗?

# 类别筛选
category = request.GET.get('ct', '')
    if category:
       all_orgs = all_orgs.filter(category=category)

问题二:另外还是这个url,是django自动的做了一个数据库的联合查询吗?可以解释一下吗?
http://127.0.0.1:8000/org_list?city=1&ct=ge

写回答

1回答

bobby

2018-10-10

ct为空的意思是默认选择所有数据,当然你也可以传递all也行,这个完全是个人爱好,很多大型网站都会这样传空值表示所有,代码中的筛选逻辑的意思不是说必须存在才会为获取所有数据,这里面两种情况都会获取所有数据,第一:如果url中没有ct这个参数, 第二 有参数但是参数为空 这两种情况都会获取所有数据

0
2
bobby
回复
大副大
url的模式只会匹配url的主要, 至于参数模式和url无关,只是参数而已,这个在web框架中都是一样的,参数不应该属于url路径
2018-10-12
共2条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程