一、常用选取过滤字段

1.,filter表示=;        (过滤条件)

2.exclude表示!=
3.querySet.distinct()      去重复

4.__exact 精确等于 like ‘xx’ __iexact 精确等于 忽略大小写 ilike ‘xx’ 
5.__contains 包含 like ‘%xx%’, __icontains 包含 忽略大小写 ilike ‘%xx%’,但是在数据库sqlite中,contains的作用效果等同于icontains。 
6.__gt 大于 
7.__gte 大于等于 
8. __lt 小于 
9. __lte 小于等于 
10.__in 存在于一个list范围内 
11.__startswith 以…开头 
12.__istartswith 以…开头 忽略大小写 
__endswith 以…结尾 
13.__iendswith 以…结尾,忽略大小写 
14.__range 在…范围内 
15.__year 日期字段的年份 
16.__month 日期字段的月份 
17.__day 日期字段的日 
18.__isnull=True/False

二,实例举例及models总结

from django.db import models# Create your models here.
class Classes(models.Model):'''班级表'''title=models.CharField(max_length=32)m=models.ManyToManyField('Teachers')'''
obj=models.Classes.objects.filter(id=1).first()
obj.m.add(1)  代表创建班级id=1 老师Id=1数据对象
obj.m.add(2)  代表创建班级id=1 老师Id=2数据对象obj=models.Classes.objects.filter(id=2).first()
obj.m.add(1)  代表创建班级id=2 老师Id=1数据对象
obj.m.add(2)  代表创建班级id=2 老师Id=2数据对象
obj.m.add([2,3])  代表创建班级id=2 老师id=2 id=3数据对象'''
class Teachers(models.Model):'''老师表''''''-----------单表-----------------每个数据对象在数据库中会有一列自增的ID一、创建数据对象(增)创建数据对象的两种方法1.models.Teachers.objects.create(name='xx')2.obj=Teachers(name='xx')obj.save()二、获取数据对象(查)models.Teachers.objects.all() //获取所有对象models.Teachers.objects.filter(id=1)//获取某个对象models.Teachers.objects.filter(id=1,name='xx')models.Teachers.objects.filter(id__gt=1)//获取ID大于等于1的对象models.Teachers.objects.filter(id__gt=1).first()//获取ID大于等于1的对象中的第一个models.Teachers.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存三、删除数据对象(删)models.objects.Teachers.filter(id=1).delete()//删除ID=1对象四、修改数据对象models.Teachers.objects.all().update(name='xx')models.Teachers.objects.filter(id=1).update(name='xx')//有过滤条件的修改'''name=models.CharField(max_length=32)class Student(models.Model):'''学生表'''username=models.CharField(max_length=32)age=models.IntegerField()gender=models.BooleanField()cs=models.ForeignKey(Classes,on_delete=models.CASCADE) #ForeignKey约束的对象在数据库中会自带下划线__id,此处的cs 里面包含id 和title'''学生对象在数据库中右5列标识id     username        age      gender      cs__id1.创建数据对象(增)models.Students.objects.create(username='xx',age=20,gender='男',cs__id=1)models.Students.objects.create(username='xx',age=20,gender='男',cs=models.Class.objects.filter(id=1).first())班级:Id     title1     软件工程2     嵌入式班3     大数据班Students类中的cs代表是班级里的一行数据:如:1 软件工程(即:id和title),若要取班级的中ID或title中的一项,需要采用cs__id或cs__title2.查询数据(查)res=models.Students.objects.all() //获取的是多条数据for item in  res:print(item.id)print(item.username)print(item.age)print(item.gender)print(item.cs__id)  print(item.cs.id)   #for循环跨表的时候可以使用cs__id或cs.id print(item.cs__title)print(item.cs.title)3.删除(删)models.Students.objects.filter(id=1).delete()models.Students.objects.filter(cs__id=1).delete()models.Students.objects.filter(username='xxx').delete()cid=input('请输入班级ID')models.Students.objects.filter(cs__id=cid).delete()ctitle=input('请输入班级名称')models.Students.objects.filter(cs__title=ctitle).delete()models.Students.objects.filter(cs.title=ctitle).delete() #cs.title=ctitle不成立,for循环中可以使用cs__id或cs.id,但是此处只能使用cs__id4.修改数据(改) models.Students.objects.filter(id=1).update(username='xxx')'''#多对多
'''
班级:
Id   title
1    网络1班
2    软件1班老师:
Id      name
1       Lee
2       Mark
3       Amie老师--班级关系对应表(类   隐藏的多对多数据表)
id    TeacherID    ClassId
1        1            2
1        1            2
2        2            1
2        2            1''''''
总结:
1.models中的一个类代表数库中的一个表,类中的一个对象代表数据表中的一行记录
2.Fk字段代表关联表中的一行数据
3.manyTomany字段,自动生成第三表,依赖关联表对第三张表进行操作。
'''

python之django中models学习总结相关推荐

  1. 【Python】django模型models的外键关联使用

    [Python]django模型models的外键关联使用 Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-61830 ...

  2. Django中models利用ORM对Mysql 进行查表的语句(多个语句)

    Django中models利用ORM对Mysql 进行查表的语句(多个语句) 字段查询 all():返回模型类对应表格中的所有数据. get(): 返回表格中满足条件的一条数据,如果查到多条数据,则抛 ...

  3. Django中models模型(操作数据库)

    ORM 自己创建数据库 连接数据库 Django操作表 数据库操作 新建 删除 获取数据 实例:用户管理 Django开发操作数据库更简单,内部提供了ORM框架 ORM的流程 ORM ORM,全称 O ...

  4. django中Models常用的字段及属性介绍

    模型类 介绍 每个模型类都可以被映射为数据库中的一个数据表,类类属性被映射为数据字段,除此之外,数据库表的主键.外键.约束等也通过类属性完成定义 模型类属性 属性 描述 AutoField AutoF ...

  5. python框架Django中MTV框架之VIew(业务控制器)

    MTV框架之VIew(业务控制器) 关注公众号"轻松学编程"了解更多. 1.什么是视图 视图层=路由表(urls.py)+视图函数(views.py) 其角色相当于MVC中的Con ...

  6. django mysql connector,MySQL Connector / python在Django中不起作用

    我正在学习以MySQL为后端的Django. 我安装了Oracle的mysql连接器以与mysql连接. 但是,当我运行python manage.py时,出现此错误 Traceback (most ...

  7. Django 中 models 用法及参数详解

    一. 模型常用字段 01. models.AutoField 自增列 (int(11)) 参数中必须填入 primary_key=True 默认情况下 Django 会为 ORM 中定义的每一张表加上 ...

  8. 计算机毕业设计python基于django在线古诗词学习系统

    学好中国古典诗词的意义:学古诗是让我们了解古人的思想,学习他们的高尚情操,也是我们一步步向上学习的过程,只有这样我们才能不断的向上攀登,超越古人. 中国是世界上唯一的历史悠久.绵延不绝的国家,这是中国 ...

  9. python和django中的常见错误

    int() argument must be a string or a number, not 'tuple' Error in formatting: coercing to Unicode: n ...

  10. python 显示等待中_Selenium学习之显式等待中的EC模块详解

    上篇博客讲到了expected_conditions模块(在使用时通常重命名为EC模块),在显式等待WebDriverWait的until和until_not方法中我们经常要用到,它会根据网页标题.网 ...

最新文章

  1. 贪吃蛇原型实现基本思路
  2. C#中线程池的简单应用
  3. log4j debug写法
  4. 嵌入式面试中常见的问答题(线程进程、TCP等)
  5. 谷歌浏览器中打开IE
  6. Cocos2d-x 3.x如何通过WebSocket连接服务器进行数据传输
  7. java html转图片_Python一键转Java?“Google翻译”你别闹
  8. 【Nacos】Nacos MySQL 配置后无法登录 愚蠢的问题
  9. LeetCode刷题(39)--Set Matrix Zeros
  10. 手把手教你配置苹果APNS推送服务|钿畑的博客 | 钿畑的博客
  11. bootstrap jasny fileinput插件冲突问题解决
  12. 互评成绩 c语言,1077 互评成绩计算 (C语言)
  13. Excel表结构模板生成MySql建表语句
  14. 大华ITC215WEB相机常用功能设置说明
  15. 相机内存卡照片恢复方法
  16. 前端开发--箭头函数
  17. 免费开源的几款Web服务器软件简介
  18. Android中显示PDF的问题解决(安卓端使用pdf.js CDN模式)
  19. 爬虫速成(二):数据获取
  20. FullCalendar 学习笔记——简单的节假日设置

热门文章

  1. python开发之路---第二模块--OS模块
  2. KVM halt-polling机制分析
  3. 测试一软件测试基础知识总结
  4. 笔记5 bean的作用域
  5. Tensor flow 实战Google深度学习框架 笔记摘要Pfour
  6. 我遇到的JPA中事务回滚的问题
  7. Openresty 与 Tengine
  8. UNICODE编码UTF-16 中的Endian(FE FF) 和 Little Endian(FF FE)
  9. 用Python自动发送邮件
  10. C++编程语言中创建类的对象(类的初始化)的方法