当前位置: 首页 > news >正文

成都网站开发公司有哪些沈阳建设工程交易网官网

成都网站开发公司有哪些,沈阳建设工程交易网官网,代理游戏,做网站5年工资多少【1】常见的13中查询方法 例子语法:models.Userinfo.objects.filter().all() 查询方法解释all()查询所有数据first()那queryset中第一条数据last()那最后一条数据filter()带有过滤条件的查询,查询不到结果返回Noneget()带有guolv条件的查询,…

【1】常见的13中查询方法

       例子语法:models.Userinfo.objects.filter().all()

查询方法解释
all()查询所有数据
first()那queryset中第一条数据
last()那最后一条数据
filter()带有过滤条件的查询,查询不到结果返回None
get()带有guolv条件的查询,查询不到结果报错
values()指定查询的字段,返回的是列表套字典
value_list()指定查询的字段,返回的是列表套元组
distinct()去重
order_by()排序,默认是升序,降序在条件前面加 "-"
count()统计有多少条数据
reverse()反转,前提是要先排序
exclude()排除、
exists()判断某个字段存不存在

【2】基于下划线的查询

                例子语法:models.Userinfo.objects.filter(age__gt=3)

方法解释
__gt大于
__lt小于
__gte大于等于
__lte小于等于
__in是,例如(年龄是11)
__range范围,例如(年龄在18到40岁之间的  首尾都要)
__contains模糊查询,例如(查询出名字里面含有s的数据  ),区分大小写
__icontains模糊查询,例如(查询出名字里面含有s的数据  ),不区分大小写
__startswith判断是否以某个字母开头,例如(用户名以s开头的)
__endswith判断是否以某个字母结尾,例如(用户名以s结尾的)
__year,__month等时间

【3】一对多外键的增删改查

以Book表为例

【3.1】增:create()
  •  models.Book.objects.create(title = ' 西游记 ',price = ' 100 ' publish_id = 1)
    • title:书名、price:价格、publish_id:外键字段
【3.2】删:delete()
  •  models.Book.objects.filter(id=1).delete()
    • id:id字段
    • 删除id=1的字段
【3.3】修改:update()
  • models.Book.objects.filter(id=1).update(public_id=2)
    • 将id=1的那条记录的外键id的值改成2

【4】多对多外键的增删改查

以书籍表和作者表为例

        【4.1】增:add

第一步:先查

        book_obj = models.Book.objects.filter(id=1).first()

        print(book_obj.authors)        # 到达第三张表

第二步:增加

        book_obj.authors.add(1)      # 书籍id为1的书籍绑定一个主键为1 的作者

 

括号内可以传数字也可以是对象,并且都支持多个

        【4.2】删:remove

第一步:先查

        book_obj = models.Book.objects.filter(id=1).first()

        print(book_obj.authors)        # 到达第三张表

第二步:删除

        book_obj.authors.remove(1)      # 删除外键id=1的全部作者

 

括号内可以传数字也可以是对象,并且都支持多个

        【4.3】修改:set

第一步:先查

        book_obj = models.Book.objects.filter(id=1).first()

        print(book_obj.authors)        # 到达第三张表

第二步:增加

        book_obj.authors.set([2])      # 书籍id为1的书的原作者改为外键为2的作者

 

        set():括号内必须填一个可迭代对象,该对象既可以是数字也可以是对象,并且都支持多个

【5】正反向的概念(用于多表查询)

正向:拥有外键字段的表去查别的表。---------正向查询按外键字段查询

 

反向:没有外键字段的表去查有外键字段的表。

        

        反向查询按表名小写查询。如果表名小写查不到就加_set。例如:book_set

【6】多表查询

        【6.1】子查询(基于对象的跨表查询)

  • 子查询步骤
    • 1、先判断数据的表关系
    • 2、判断数据的正反向关系
    • 3、写方法

正向例题:

        

查询书籍主键为1的出版社book_obj = models.Book.objects.filter(pk=1).first()# 书查出版社 正向res = book_obj.publishprint(res)print(res.name)print(res.addr)

 基于对象在正向什么时候加 .all()问题:

        当查询的结果有多个的时候需要加 .all()


反向例题:

        

查询出版社是东方出版社出版的书publish_obj = models.Publish.objects.filter(name='东方出版社').first()# 出版社查书  反向res = publish_obj.book_set  # app01.Book.Noneres = publish_obj.book_set.all()print(res)

基于对象在反向什么时候需要加_set.all()

        在反向查询的时候,当查询的结果有多个,就需要加_set.all()

        【6.2】联表查询(基于双下划线的跨表查询)

  • 联表查询步骤
    • 1、先判断数据的表关系
    • 2、判断数据的正反向关系
    • 3、写方法

例题的正向查询和反向查询的方法

        

1.查询jason的手机号和作者姓名# 正向
res = models.Author.objects.filter(name='jason').values('author_detail__phone','name')print(res)# 反向
res = models.AuthorDetail.objects.filter(author__name='jason').values('phone','author__name')print(res)

        【6.3】聚合查询:aggregate

集合查询一般配合分组一起使用

 

聚合查询需要导入from.db.models import Max,Min,Avg,Sum,Count

 

使用方法:

        

例子# 1 所有书的平均价格res = models.Book.objects.aggregate(Avg('price'))print(res)# 2.上述方法一次性使用res = models.Book.objects.aggregate(Max('price'),Min('price'),Sum('price'),Count('pk'),Avg('price'))print(res)

        【6.4】分组查询:annotate

分组查询特点:

        分组之后只能获得分组的依据,其它的字段不能获取。

       

        这是因为设置了严格模式:ONLY_FULL_GROUP_BY

        只需要将严格模式的指令去除就行了

        例题

 from django.db.models import Max, Min, Sum, Count, Avg# 1.统计每一本书的作者个数res = models.Book.objects.annotate(author_num=Count('authors')).values('title','author_num')'''
models点后面的表名,是以Book表分组我们还可以给起别名author_num就是给Count('authors')起别名'''

分组查询按照指定字段分组:

        models.Book.object.values('price').annotate()

 

如果出现分组查询报错的情况,解决方式:修改严格模式

【7】F和Q查询

        【7.1】F查询

F查询作用:能够帮助我们直接获取到表中某个字段对应的数据

 

F查询需要导入:from django.db.models import F

 

F查询实例1:

        

# 1.查询卖出数大于库存数的书籍from django.db.models import Fres = models.Book.objects.filter(maichu__gt=F('kucun'))print(res)

F查询实例2:

        

# 3.将所有书的名称后面加上爆款两个字"""在操作字符类型的数据的时候 F不能够直接做到字符串的拼接"""
# 需要借用Concat方法和Value方法才能实现字符串的拼接from django.db.models.functions import Concatfrom django.db.models import Valuemodels.Book.objects.update(title=Concat(F('title'), Value('爆款')))'''如果直接使用F查询,得到的结果是所有的名称都会变成空白'''# models.Book.objects.update(title=F('title') + '爆款')  # 所有的名称会全部变成空白

        【7.2】Q查询

        Q查询将 filter方法括号内默认的and关系查询变换成or关系查询或not关系查询

 

Q查询默认有3中关系:and、or、not

        1、Q包裹用 " ," 分割是 and 关系

 例子: 

        

# 1.查询卖出数大于100或者价格小于600的书籍from django.db.models import Qres = models.Book.objects.filter(Q(maichu__gt=100),Q(price__lt=600))  # Q包裹逗号分割 还是and关系

        2、Q包裹用" | "分割是 or 关系

        

# 1.查询卖出数大于100或者价格小于600的书籍from django.db.models import Qres = models.Book.objects.filter(Q(maichu__gt=100)|Q(price__lt=600))  # Q包裹"|"分割 还是and关系

        3、Q查询前面加" ~ "就是 not 关系

        

# 1.查询卖出数大于100或者价格小于600的书籍from django.db.models import Qres = models.Book.objects.filter(~Q(maichu__gt=100)|Q(price__lt=600))'''
~Q(maichu__gt=100)只是这个条件是 not关系 竖杠后面的条件不是 not关系~(Q(maichu__gt=100)|Q(price__lt=600):这个才全是not关系'''

 

Q查询的高阶用法:能够将查询条件左边也变成字符串的形式

 

语法:

        

 q = Q()q.connector = 'or'q.children.append(('maichu__gt',100))q.children.append(('price__lt',600))res = models.Book.objects.filter(q)  # 默认还是and关系print(res)

http://www.yayakq.cn/news/177/

相关文章:

  • 厦门网站优化服务小程序代理好做吗
  • 网站编程工资多少什么样建网站
  • 外贸网站优化排名百度文库个人登录
  • 邯郸市环保局网站建设项目环境北京电商公司有哪些
  • 龙岗住房和建设局网站官网wordpress 皮主题
  • 百度做网站按点击量收费吗网络举报网站
  • 好的建站软件佛山外贸网站建设新闻
  • 自己开发网站要多少钱wordpress 弹出搜索框
  • 有教做路桥质检资料的网站吗内置wordpress主机
  • 徐州哪家公司做网站水平好有那些网站做结伴旅游的
  • 湛江企业网站网站透明背景
  • 沈阳网站备案wordpress回复旧版本
  • 大连做网站杭州拱墅网站建设
  • 公司网站建设与维护网站在线考试答题系统怎么做
  • 在菲律宾做网站推广怎么样安徽鑫华建设有限公司网站
  • 做非法网站有哪些公司关于网站设计公司的简介
  • 宁波网站建设公司哪家口碑好赚钱软件app
  • 网站一定备案吗网站群如何做网站
  • 建设银行公积金预约网站首页鲜花网站建设项目概述
  • 院校网站建设网站设计与制作说明书
  • 做网站的属于什么专业?深圳市住建局官网入口
  • 中国网站制作公司排名厦门网站制作费用明细
  • 企业网站建设需了解什么安卓免费翻外墙的app
  • 医疗网站不备案深圳市前十的互联网推广公司
  • 手机网站制作教程下载梅州兴宁网站建设培训
  • 网站内容的创新大气学校网站
  • dede免费网站模板下载wordpress内部服务器
  • 主机屋 建网站教程网址生成软件
  • 优惠券网站怎么做代理优购物官方网站 商城
  • 手机网站按那个尺寸做中国建设银行网站上不去