首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django:models查询和前后端交互

django-model查询语句: 基本操作: 获取所有数据: User.objects.all() 对应SQL语句:select * from User 匹配查询数据: User.objects.filter...(条件 = '条件' ) 条件可以有N个,以逗号分隔 对应SQL语句:select * from User where 条件 = "条件" 不匹配查询语句: User.objects.exclude...获取第一条数据: User.objects.filter(条件).first() 外键:ForeignKey: 一对多: 一.多_set.all() 多查一: 多.一.一的字段 多对多查询...两边都是 多.多_set.all() 表结构: 正向查询: 反向查询: 另一种反向查询的方法: ManyToManyField: 常用操作: 进阶操作: 前后端交互方法...{% %} 模式是块,可以用if和for之类的语句进行遍历 | 括号中的值末尾加“|”,可以使用筛选器,筛选结果 直接在html文件的几乎任意位置使用,在页面被context(一会说)渲染的时候,便会被所渲染的值替代

78420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    django-drf框架中排序和查询组件

    0910自我总结 django-drf框架中排序和查询组件 一查询相关 1.模糊查询 1.导入模块组件 from rest_framework.filters import SearchFilter 2...search_fields = ['字段一名称','字段二名称'] #可以用()包裹,写前面的优先级大于后面 filter_backends = [SearchFilter,] 其中search_fields...前面添加各种字符来限制搜索行为 ^以指定内容开头 =完全匹配 @全文搜索(目前只支持django数据存放在mysql) $正则匹配 2.自定义查询 1.自定义条件导入模块及设置 from django_filters.rest_framework...): min_price = filters.NumberFilter(field_name='类里面的字段名称', lookup_expr='gte') #gte为大于等于 max_price...ordering_fields = ['字段一名称','字段二名称'] #可以用()包裹,写前面的优先级大于后面 filter_backends =[DjangoFilterBackend,]

    96200

    Python Django项目下的分页和筛选查询

    分页当我们的数据过多是,我们需要对数据进行分页,即每页显示多少行,有多少页,好在Django已经为我们准备好了,直接套用即可视图函数下方我是将三个数据表中的数据合在一起,准备渲染到界面,注意:三个数据表中需要有一个可以分辨其实不同数据表的字段...="{% url 'allprodect' injection_page.next_page_number%}">下一页 {% endif % 筛选查询目前有一个筛选查询的需求...,可以查询已上架和下架的产品,并且如果数据过多,以分页的页面进行展示视图函数在这个视图函数中,我们首先判断其实GET请求,并在GET请求中获取来自前端页面的state参数值,以此来查询上架和未上架的产品...,数据库字段使用的是布尔值,也就是1和0,故咋前端页面传值是只需要传1或者0 即可查询不同的值数据,因为筛选的是三个数据表中的数据,故需要对其进行数据合并,然后传送至前端进行渲染显示def Searchstate...state={{ request.GET.state }}会将GET请求的参数带上查询,如第第二页就是:http://127.0.0.1:8000/Searchstate/2?state=1<!

    10010

    python测试开发django-170.ORM查询之contains和icontains

    前言 平常用ORM大部分使用的是get、filter、exclude这三种能满足基本的需求,有时我们需要满足一些复杂的查询场景,在页面上传不同参数满足查询需求。...ORM 条件查询使用field__结合 condition 的方式来使用的,比如查询包含指定的字符,可以用contains和icontains。...contains和icontains 区别 比如有下面这张表 MyDjango>python manage.py shell >>> Product.objects.filter(name__contains...Product: Product object (4)>]> >>> contains表示精确大小写,icontains中的i表示忽略大小写 filter(name__contains='yy') 是查询...name包含小写的yy的内容 filter(name__icontains='yy')是查询name包含yy的字符,不区分大小写 对应SQL语句 SQL 查询like 后面带上 BINARY 就是精确大小写查询

    72230

    【Django】 开发:数据库操作和后台管理

    __gte : 大于等于 7.__lt : 小于 8.__lte : 小于等于 9....查询集合对象 调用查询集合对象的 delete () 方法实现删除 示例: # 删除全部作者中,年龄大于65的全部信息 auths = Author.objects.filter(age__gt=65...〜 非操作 语法 from django.db.models import Q Q(条件1)|Q(条件2) # 条件1成立或条件2成立 Q(条件1)&Q(条件2) # 条件1和条件2同时成立 Q(...示例 from django.db.models import Q # 查找清华大学出版社的书或价格低于50的书 Book.objects.filter(Q(market_price__lt=50) |...=80) -> 获取book对应的作者中年龄大于80岁的作者的信息 通过 Author 查询对应的所有的 Book【反向】 Django 会生成一个反向属性 book_set 用于表示对对应的 book

    4.1K40

    一篇文章教会你使用Django根据现有数据库反向生成models

    熟悉Django的都知道,Django真是个好东西。 复制粘贴一把梭很快都能撸出来一个web,再借助Django的Models和ORM。 查询简直不要太方便!!! 但是,但是,但是,真的如此吗???...不需要再通过Django去生成了。 这种情况咋办???给同事说说删了用Django生成???,里面十万条数据呢,开什么玩笑!...其实再执行迁移命令时,除了自己的表,还会像auth.xx和django.xx开头的表。 这类表主要是的作用主要是为django admin提供服务和django session提供服务。...字段名和db_table不可修改,model名随便修改。 关于时间字段问题 通常情况下,我们会有一个create_time和update_time ? 反向生成的models ?...默认生成的需要有点问题,在使用时会发现添加时间和更新时间不起作用!!!

    2.5K20

    Django篇(二)

    注意:我们在添加属性的时候如果影响了表结构,就需要迁移,default和blank不影响表结构。 更多模型字段,请参考Django官方文档。写的明明白白。...__isnull=False) 4、范围查询 in 查询id等于1和2的人 student.objects.filter(id__in=[1,2]) 5、比较查询 gt(大于) lt(小于) gte(大于等于...) lte(小于等于) 5.1查询id大于3的人 student.objects.filter(id__gt=3) 5.2查询id大于等于3的人 student.objects.filter(id__gte...比如查询id大于3,年龄(age)大于18的人: student.objects.filter(id__gt=3,age__gt=18) 用Q对象查询 and用Q对象中的&符号: student.objects.filter...F对象 导入F对象: from django.db.models import F 查询id大于年龄(age)的人 student.objects.filter(id__gt=F('age')) 聚合函数

    1.4K20

    Django之ORM

    2.QuerySet对象 查询的结果集就是一个QuerySet对象 QuerySet对象就像是一个列表,列表存储着查询出的结果,可以迭代,可以切片 Django中QuerySet对象是惰性的,即你得到这个对象的时候并没有真正的在数据库中执行...school为student表中设置的外键字段 student1=student.objects.filter(id=2).values('school__name') print(student1) 多对多 和一对多的查询方式一样...aggregate 聚合查询是对QuerySet对象进行计算得到一个结果值作为字典中的值放到一个字典中 这里先引入一些聚合方法 from django.db.models import Avg,Min,...')) 或者 result=student.objects.update(num=F('school_id')+1) 8.Q查询 惯例先引入 from django.db.models import...1)) 相当于用Q将条件封装,在Q对象之间使用&或者|或者~ 如果想将普通发关键字参数查询与Q查询一起使用,必须将关键字参数查询放到Q的后边 9.扩展查询extra Django 的查询语法难以简练地表达复杂的

    1.1K30

    Django MVT之M

    在Django MVC概述和开发流程中已经讲解了Django的MVT开发流程,本文重点对MVT中的模型(Model)进行重点讲解。 配置MySQL数据库 确保已经安装了操作mysql的包。...更加完整的介绍参考Django 1.8.2 中文文档 注:当修改模型类之后,如果添加的选项不影响表的结构,则不需要重新做迁移。其中选项default和blank不影响表结构。...谓词 Django的查询条件是一种独特的字段查询表达方式,表现形式为: 字段名称__谓词=值 即用‘双下划线连接的字段名称和谓词’来表示查询的条件。...from django.db.models import F # 查询女生人数大于男生人数的班级 Grades.objects.filter(girlnum_gt=F('boynum')) #...from django.db.models import Q # 查询id大于3且学校为北京大学的学生 StudentInfo.objects.filter(Q(id__gt=3) & Q(school

    1K10

    Django学习-第六讲(上):Django数据库原生的方法操作

    注意:django要求的mysql 版本为 5.7的,低于5.7的话不能使用ORM 常见MySQL驱动介绍: MySQL-python:也就是MySQLdb。...并且也因为是纯Python编写的,因此可以和Python代码无缝衔接。 4 . MySQL Connector/Python:MySQL官方推出的使用纯Python连接MySQL的驱动。...4.Python DB API下规范下cursor对象常用接口 description:如果cursor执行了查询的sql代码。...示例代码如下: cursor.execute("select * from article where id=%s",(1,)) fetchone:在执行了查询操作以后,获取第一条数据。...fetchmany(size):在执行查询操作以后,获取多条数据。具体是多少条要看传的size参数。如果不传size参数,那么默认是获取第一条数据。

    74920

    Django ORM 单表操作

    目录 Django ORM单表操作 Django 测试环境搭建 ORM 创建表 ORM 添加数据 ORM 查询数据 all 查询 filter 查询 exclude 取反查询 get 查询 order_by...all 查询 all()方法查询所有数据,返回一个QuerySet对象,类似list,可以通过索引来获取列表中的对象,这里不支持负索引 from django.shortcuts import...') values和values_list区别 values查询返回的结果是列表套字典的形式,字段名和数据都能够获取到 values_list查询返回的结果是列表套元组的形式,只返回数据 distinct...') __gt __gte 大于、大于等于 # 价格大于100的数据 book_obj = models.Book.objects.filter(price__gt=100) # 价格大于等于...,和contains一样 # 查询包含Py字符的书名 book_obj = models.Book.objects.filter(title__contains='py') __startswith

    1.3K20

    Django 系列博客(十二)

    Django 系列博客(十二) 前言 本篇博客继续介绍 Django 中的查询,分别为聚合查询和分组查询,以及 F 和 Q 查询。...聚合查询 语法:aggregate(*args, **kwargs) # 计算所有图书的平均价格 from django.db.models import Avg Book.objects.all()....所以如果想知道所有图书价格的最大值和最小值,可以这样查询: from django.db.models import Avg, Max, Min Book.objects.aggregate(Avg('...# 查询所有作者写的书的总价格大于26的 # filter()在annotate后面,表示对分组后的结果进行筛选,相当于having # annotate前的values()表示按该字段分组,相当于group...语法 from django.db.models import F fliter(commit_num_gt=F('read_num')) F 查询的使用 # 查询评论数大于阅读数的书 book = models.Book.objects.filter

    47840
    领券