python之django中models学习总结
一、常用选取过滤字段
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学习总结相关推荐
- 【Python】django模型models的外键关联使用
[Python]django模型models的外键关联使用 Python 2.7.10,django 1.8.6 外键关联:http://www.bubuko.com/infodetail-61830 ...
- Django中models利用ORM对Mysql 进行查表的语句(多个语句)
Django中models利用ORM对Mysql 进行查表的语句(多个语句) 字段查询 all():返回模型类对应表格中的所有数据. get(): 返回表格中满足条件的一条数据,如果查到多条数据,则抛 ...
- Django中models模型(操作数据库)
ORM 自己创建数据库 连接数据库 Django操作表 数据库操作 新建 删除 获取数据 实例:用户管理 Django开发操作数据库更简单,内部提供了ORM框架 ORM的流程 ORM ORM,全称 O ...
- django中Models常用的字段及属性介绍
模型类 介绍 每个模型类都可以被映射为数据库中的一个数据表,类类属性被映射为数据字段,除此之外,数据库表的主键.外键.约束等也通过类属性完成定义 模型类属性 属性 描述 AutoField AutoF ...
- python框架Django中MTV框架之VIew(业务控制器)
MTV框架之VIew(业务控制器) 关注公众号"轻松学编程"了解更多. 1.什么是视图 视图层=路由表(urls.py)+视图函数(views.py) 其角色相当于MVC中的Con ...
- django mysql connector,MySQL Connector / python在Django中不起作用
我正在学习以MySQL为后端的Django. 我安装了Oracle的mysql连接器以与mysql连接. 但是,当我运行python manage.py时,出现此错误 Traceback (most ...
- Django 中 models 用法及参数详解
一. 模型常用字段 01. models.AutoField 自增列 (int(11)) 参数中必须填入 primary_key=True 默认情况下 Django 会为 ORM 中定义的每一张表加上 ...
- 计算机毕业设计python基于django在线古诗词学习系统
学好中国古典诗词的意义:学古诗是让我们了解古人的思想,学习他们的高尚情操,也是我们一步步向上学习的过程,只有这样我们才能不断的向上攀登,超越古人. 中国是世界上唯一的历史悠久.绵延不绝的国家,这是中国 ...
- python和django中的常见错误
int() argument must be a string or a number, not 'tuple' Error in formatting: coercing to Unicode: n ...
- python 显示等待中_Selenium学习之显式等待中的EC模块详解
上篇博客讲到了expected_conditions模块(在使用时通常重命名为EC模块),在显式等待WebDriverWait的until和until_not方法中我们经常要用到,它会根据网页标题.网 ...
最新文章
- 贪吃蛇原型实现基本思路
- C#中线程池的简单应用
- log4j debug写法
- 嵌入式面试中常见的问答题(线程进程、TCP等)
- 谷歌浏览器中打开IE
- Cocos2d-x 3.x如何通过WebSocket连接服务器进行数据传输
- java html转图片_Python一键转Java?“Google翻译”你别闹
- 【Nacos】Nacos MySQL 配置后无法登录 愚蠢的问题
- LeetCode刷题(39)--Set Matrix Zeros
- 手把手教你配置苹果APNS推送服务|钿畑的博客 | 钿畑的博客
- bootstrap jasny fileinput插件冲突问题解决
- 互评成绩 c语言,1077 互评成绩计算 (C语言)
- Excel表结构模板生成MySql建表语句
- 大华ITC215WEB相机常用功能设置说明
- 相机内存卡照片恢复方法
- 前端开发--箭头函数
- 免费开源的几款Web服务器软件简介
- Android中显示PDF的问题解决(安卓端使用pdf.js CDN模式)
- 爬虫速成(二):数据获取
- FullCalendar 学习笔记——简单的节假日设置