欢迎关注 『Django 网页Web开发』 系列,持续更新中
欢迎关注 『Django 网页Web开发』 系列,持续更新中
搜索语句示例
q1=models.PrettyNum.objects.filter(mobile="65345678911",id=4)
print(q1)#<QuerySet [<PrettyNum: PrettyNum object (4)>]>
data_dict = {"mobile": "65345678911", "id": 4}#将搜索条件单独提出来
q2=models.PrettyNum.objects.filter(**data_dict)
print(q2)#<QuerySet [<PrettyNum: PrettyNum object (4)>]>
搜索语句规则
大于小于和范围指定数据匹配
注意下面中间间隔是2个下划线
- models.PrettyNum.objects.filter(id=12) # 等于12
- models.PrettyNum.objects.filter(id__gt=12) # 大于12
- models.PrettyNum.objects.filter(id__gte=12) # 大于等于12
- models.PrettyNum.objects.filter(id__lt=12) # 小于12
- models.PrettyNum.objects.filter(id__lte=12) # 小于等于12
---- 示例:检索id小于等于12
- data_dict = {“id__lte”: 12}
- q=models.PrettyNum.objects.filter(**data_dict)
- print(q)
---- 范围相关的搜索
- models.PrettyNum.objects.filter(mobile=“999”) # 等于
- models.PrettyNum.objects.filter(mobile__startswith=“1999”) # 筛选出以1999开头
- models.PrettyNum.objects.filter(mobile__endswith=“999”) # 筛选出以999结尾
- models.PrettyNum.objects.filter(mobile__contains=“999”) # 筛选出包含999
---- 示例:检索mobile包含999
- data_dict = {“mobile__contains”: “999”}
- models.PrettyNum.objects.filter(**data_dict)
简易搜索q
-view.py
def pretty_list(request):
""" 靓号列表 """
data_dict = {}
search_data=request.GET.get("q")
if search_data:#如果传来的参数非空就搜索,反之显示所有数据
data_dict["mobile__contains"]=search_data#是否包含指定数据
queryset = models.PrettyNum.objects.filter(**data_dict).order_by("-level")#-level表示按照level降序排列显示
return render(request, 'pretty_list.html',{"queryset":queryset,"search_data":search_data})
地址栏中加入?q=34
即可查找手机号码中含有34的数据,如果没有q值则返回所有数据
带上搜索框的搜索
搜索框组件来自bootstrap,搜索完成后{{ search_data }}搜索关键词默认也留在网页
{% extends 'layout.html' %}
{% block content %}
<div class="container">
<div style="margin-bottom: 10px" class="clearfix">
<a class="btn btn-success" href="/pretty/add/">
<span class="glyphicon glyphicon-plus-sign" aria-hidden="true"></span>
新建靓号
</a>
<div style="float: right;width: 300px;">
<form method="get">
<div class="input-group">
<input type="text" name="q" class="form-control" placeholder="Search for..."
value="{{ search_data }}">
<span class="input-group-btn">
<button class="btn btn-default" type="submit">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
</button>
</span>
</div>
</form>
</div>
</div>
<div class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">
<span class="glyphicon glyphicon-th-list" aria-hidden="true"></span>
靓号列表
</div>
<!-- Table -->
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>号码</th>
<th>价格</th>
<th>级别</th>
<th>状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{% for obj in queryset %}
<tr>
<th>{{ obj.id }}</th>
<td>{{ obj.mobile }}</td>
<td>{{ obj.price }}</td>
<td>{{ obj.get_level_display }}</td>
<td>{{ obj.get_status_display }}</td>
<td>
<a class="btn btn-primary btn-xs" href="/pretty/{{ obj.id }}/edit/">编辑</a>
<a class="btn btn-danger btn-xs" href="/pretty/{{ obj.id }}/delete/">删除</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="clearfix">
<ul class="pagination">
{{ page_string }}
</ul>
</div>
</div>
{% endblock %}
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python 网页Web开发知识!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2023 mzh
Crated:2023-3-1
欢迎关注 『Django 网页Web开发』 系列,持续更新中
欢迎关注 『Django 网页Web开发』 系列,持续更新中
『01. 安装配置Django』
『02. 创建并运行一个Django项目』
『03. 初识Django』
『04. 请求和响应,网页跳转重定向,实战简易表单模拟登陆』
『05. 数据库操作,实战用户管理』
『06. 报错:You have 26 unapplied migration(s). Your project may not work properly until you apply the migra』
『07. 模板语法』
『08. 实战项目:部门和员工管理系统(01)』
『09. 实战项目:员工编辑删除功能与靓号管理(02)』
『10. 实战项目:靓号搜索功能(03)』
『11. 实战项目:分页与页码跳转功能(04)』
『12. 实战项目:分页组件的封装 面向接口编程(05)』
『13. 实战项目:添加用户时的时间选择组件(06)』
『14. 实战项目:一些面向对象的代码结构优化(07)』
『15. 实战项目:管理员增删改查,md5密码和密码重置(08)』
『16. 实战项目:BootStrap类的进一步优化(09)』
『17. 实战项目:login业务涉及cookie、session、中间件(10)』
『18. 实战项目:登录时的验证码(11)』
『19. 实战项目:初识Ajax请求(12)』
『20. 实战项目:Ajax实战之订单管理与弹出对话框(13)』
『21. 实战项目:echart数据图表(14)』
『22. 实战项目:简单的文件上传(15)』
『23. 实战项目:Excel和form和moudleForm的文件上传(16)』
【更多内容敬请期待】