首页 > 其他分享 >django 动态查询实现过程

django 动态查询实现过程

时间:2024-03-11 14:36:30浏览次数:26  
标签:username __ mobile 查询 person django 动态 page

django 动态查询实现过程

一、背景描述

在前端页面上有查询功能,要查询的输入选择有username,address,mobile等,可以通过任意一个查询,或者任意组合进行查询。
后端,获取传入的数值。判断哪个有输入,再在数据库中进行查询

二、解决方案

根据条件,动态实现查询过程

condition = {}
if username:
	condition['username__startWith'] = username
if address:
	condition['addr__contains'] = address
if mobile is not None:
	condition['mobile__endWith'] = mobile
person = User.objects.filter(**condition)

先查询所有,或者固定筛选的条件,动态实现查询过程

person = User.objects.all()
if username:
	person = person.filter(username__startWith= username)
if address:
	person = person.filter(addr__contains= address)
if mobile is not None:
	person = person.filter(mobile__endWith= mobile)

person = User.objects.filter(**condition)

三、后续操作

from django.core.paginator import Paginator

person = person.order_by('-create_tiem')  倒序

page = Paginator(person, page_size)
total_count = person.count()
total_page = page.num_pages
if page_num > total_page:
    page_num = 1
    
result = list(pag.page(page_num).object_list.values())

标签:username,__,mobile,查询,person,django,动态,page
From: https://www.cnblogs.com/HeroZhang/p/18066002

相关文章

  • Mysql和Clickhouse数据查询-按照时间分组统计并且对无无数据的日期补0
      最近在做数据查询需求的时候,遇到按照时间分组查询统计指标的需求,比如说查询模块的最近15天访问数据量,没有数据的日期补0,以前对于这种类似的需求都是通过代码来补数据,想试试sql实现这种查询,因此查询了不少文章,对于类似实现方法的文章网上也有很多,差异也很多,因此这篇文章只......
  • Dynamics CRM 2013 常用SQL查询基础数据
    获取实体SELECT*FROMEntityWHERELogicalName='EntityName'获取字段名称SELECTdistinctA.nameAS字段名,L.labelAS显示名,AT.descriptionAS类型,L.ObjectColumnNameAS形式,A.IsNullableAScodefromattributeAINNERJOINlocalizedlabelLONA.Attributei......
  • 学习Django【1】模型
    编辑models.py文件,改变模型。运行pythonmanage.pymakemigrations为模型的改变生成迁移文件。运行pythonmanage.pymigrate来应用数据库迁移。1、定义模型-也就是数据库结构设计和附加的其它元数据。大白话:数据库建表。2、使用命令pythonmanage.pym......
  • [转][SQL Server]分页查询
    方式一:使用OFFSET/FETCH子句(SQLServer2012及以上版本支持)--假设PageSize表示每页的记录数,pageNumber表示当前页码(从1开始)DECLARE@PageSizeINT=10;DECLARE@pageNumberINT=3;SELECT*FROMtable1ORDERBYId--或者按其他字段排序OFFSET(@pageNumber-......
  • MySQL 8.0.26版本升级32版本查询数据为空的跟踪
    某业务系统将MySQL8.0.26升级为GreatSQL8.0.32-24后,某些特定的SQL语句不能查询到数据。经测试MySQL8.0.32也存在相同的问题此BUG已在GreatSQL8.0.32-25版本中解决MySQL8.0.26版本升级32版本查询数据为空的跟踪接到客户反馈的问题后,对问题进行了复现和分析。版本信......
  • MYSQL学习笔记23: 多表查询(自连接内连接+左右外连接)
    多表查询(自连接)自连接查询,可以是内连接查询,也可以是外连接查询select字段列表from表A别名Ajoin表A别名Bon条件...;自连接内连接查询员工以及所属领导的名字#可以这样写selecte1.name'员工',e2.name'上司'fromempe1joinempe2one1.man......
  • MYSQL学习笔记24: 多表查询(联合查询,Union, Union All)
    多表查询(联合查询,union,unionall)union查询需要多张表的列数一致,字段类型也保持一致对于union查询,就是把多次查询的结果合并起来,形成一个新的查询结果集select字段列表from表A...union[all]select字段列表from表B...;查询出薪资低于10000,或年龄......
  • MYSQL学习笔记25: 多表查询(子查询)[标量子查询,列子查询]
    多表查询(子查询)子查询,也称嵌套查询子查询的语句可以是insert/update/delete/select中的任何一个根据子查询的结果不同,可以分为:标量子查询(结果为单个值)列子查询(结果为一列)行子查询(子查询结果为一行)表子查询(子查询结果为多行多列)select*fromt1wh......
  • 【动态规划】线性dp /训练记录/
    开篇碎碎念前些日子写期望dp,但是...cf的那个C可以dp但是没有开出来,于是决定重新开始练dp√(一定是因为题目做的不够多捏,加训!)是根据这个题单来练哒,指路:【动态规划】普及~省选的dp题然后边练边整理一下思路什么的)))基本思路其实动态规划的本质就是暴力(这也是可以说的吗(遁),考虑好......
  • Django进阶之路由层和视图层
    Django的路由系统【1】什么是URL配置(URLconf)URL调度器|Django文档|Django(djangoproject.com)URL配置(URLconf)就像Django所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个U......