博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python课堂笔记之django-day02(11)
阅读量:6231 次
发布时间:2019-06-21

本文共 1021 字,大约阅读时间需要 3 分钟。

11.2 通过模型类实现关联查询

python课堂笔记之django-day02(11)
例:查询图书信息,要求图书关联的英雄的描述包含'八'。
BookInfo.objects.filter(heroinfohcommentcontains='八')
例:查询图书信息,要求图书中的英雄的id大于3.
BookInfo.objects.filter(heroinfoidgt=3)
例:查询书名为“天龙八部”的所有英雄。
HeroInfo.objects.filter(hbookbtitle='天龙八部')
通过多类的条件查询一类的数据:
一类名.objects.filter(多类名小写
多类属性名条件名)
通过一类的条件查询多类的数据:
多类名.objects.filter(关联属性
一类属性名__条件名)

  1. 插入、更新和删除
    调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的
    插入和更新。
    调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除。
  2. 自关联
    python课堂笔记之django-day02(11)
    自关联是一种特殊的一对多的关系。
    案例:显示广州市的上级地区和下级地区。
    地区表:id, atitle, aParent_id;
    mysql终端中批量执行sql语句:source areas.sql;
  3. 管理器
    BookInfo.objects.all()->objects是一个什么东西呢?
    答:objects是Django帮我自动生成的管理器对象,通过这个管理器可
    以实现对数据的查询。
    objects是models.Manger类的一个对象。自定义管理器之后Django不再帮我们生成默认的objects管理器。
    1) 自定义一个管理器类,这个类继承models.Manger类。
    2) 再在具体的模型类里定义一个自定义管理器类的对象。
    自定义管理器类的应用场景:
    1) 改变查询的结果集。
    比如调用BookInfo.books.all()返回的是没有删除的图书的数据。
    2) 添加额外的方法。
    管理器类中定义一个方法帮我们操作模型类对应的数据表。
    使用self.model()就可以创建一个跟自定义管理器对应的模型类对象。
    小结:
    python课堂笔记之django-day02(11)
  4. 元选项
    Django默认生成的表名:
    应用名小写_模型类名小写。
    元选项:
    需要在模型类中定义一个元类Meta,在里面定义一个类属性db_table就可以指定表名。
    python课堂笔记之django-day02(11)

转载于:https://blog.51cto.com/13517854/2315092

你可能感兴趣的文章
Razor模板引擎
查看>>
Log4Net 日志配置[附带源码]
查看>>
企业级Nginx Web服务优化实战
查看>>
Google地图,Baidu地图数据供应商
查看>>
抽象类
查看>>
node溢出
查看>>
【转】充满浮躁的程序员
查看>>
jquery tips 提示层
查看>>
Python 之IO模型
查看>>
SSH项目tomcat发布时,Initializing Spring root WebApplicationContext卡死不动
查看>>
Lombok
查看>>
Single Number II
查看>>
由于一个老熟人对架构的一句话而拉黑了他。
查看>>
Mysql第八天 分区与分表
查看>>
CF 558A(Lala Land and Apple Trees-暴力)
查看>>
关于继承Fragment后重写构造方法而产生的错误
查看>>
2017-5-7 账号激活 权限设置 销售 仓库 财务三大模块
查看>>
datepicker插件的使用
查看>>
用户定义的变量+HTTP Cookie 管理器组合实现接口关联+问题处理
查看>>
linux中查找文件中的内容
查看>>