ORM (Object Relation Mapping),对象关系映射。
模型ORM语法
- 定义
User模型 ```python from django.db import models
class User(models.Model): name = models.CharField(‘用户名’, max_length=30) age = models.TinyIntField(‘年龄’, default=0)
2. CRUD 对应的ORM语法```python# 新增# 第一种,手动保存user = User(name='Blucas', age=26)user.save()# 第二种,自动保存User.objects.create({'name': 'Blucas','age': 26})# 第三种,批量新增User.objects.bulk_create([User(name='张三', age=20),User(name='李四', age=21),User(name='王五', age=22)])# 删除:先查再删# 第一种,单条删除user = User.objects.get(pk=1)user.delete()# 第二种,批量删除user = User.objects.all()user.delete()# 修改:先查再改,最后保存user = User.objects.get(pk=1)user.name = '张老三'user.save()# 查询# 第一种,返回一个查询集user = User.objects.all() # <QuerySet># 第二种,返回一个模型对象user = User.objects.get(pk=1) # <User>
细说查询语法
查询语法是在实际开发当中使用频率最高的操作; 查询语法可能返回的值区分 【查询集】 和 【模型对象】; 查询集可以继续使用查询语法,返回查询集的函数成为 过滤器 函数,所以查询集可以链式调用过滤器函数;
过滤器函数
User.objects.all()User.objects.filter()User.objects.order_by()
非过滤器函数
User.objects.get()User.objects.first()User.objects.last()User.objects.exists()User.objects.count()
查询集限制
User.objects.all()[:2] # 前闭后开,相当于返回0, 1User.objects.all()[0:10]User.objects.all()[::2]
