Django:ORM增删改查(CURD),关系字段总结

一、ORM中基本操作,1.概念,2.使用ORM进行增删改查(CRUD),3.双下划线方法;
二、关系字段,1.一对多,2.多对多,3.一对一;
三、同步数据库;
四、admin的使用

一、ORM中基本操作
1.概念:O: object , R: relation , M : mapping, 对象关系映射,使用面向对象的思想来操作数据库。
python中的一个类对应对应数据库中的一张表格。
python中的一个对象对应表格中的一条记录。
Python中的对象属性 对应 表格中的字段。
2.使用ORM进行增删改查(CRUD) [创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)]
(1)增加: models.类名.objects.create(关键字(对象属性)=值,…)
对象.save() 方式。
(2)删除: delete()
①对象.delete()
②返回QuerySet对象,也可以使用delete()
(3)修改:
①使用对象方式: 先获取对象, 给对象属性赋值,最后对象.save()。
提示: 获取对象方式: models.Person.objects.get() ,直接返回对象, 直接给对象赋值。最后对象.save()
models.Person.objects.filter(id=1), 返回QuerySet对象。不能直接使用返回的对象。应该先取出QuerySet对象中包含的Person对象。然后再赋值,保存。
②返回QuerySet对象方式: models.Person.objects.filter(id=1).update(关键字=值…)
(4)查找:
①返回对象的查找方法: get()、first()、last()
②返回数字的查找方法: count()
③返回boolean值得方法: exists()
④返回QuerySet对象的方法: all()、filter()、exclude()、order_by()、reverse()、values()、values_list()
3.双下划线方法
(1)xx__lt : 小于
(2)xx__lte : 小于等于
(3)Xx__gt、xx__gte : 大于、大于等于。
(4)xx__in : 包含指定的内容。
(5)xx__range: 指定范围内的查找, 相当于 mysql中的 between… and…
(6)Xx__startswith、xx__endswith、xx__istartswith、xx__iendswith。
(7)xx__contains: 包含某个字符,xx__icontains: 忽略大小写。
(8)日期类型:xx__year、xx___month、xx__day。根据年月日进行匹配。

二、关系字段
1.一对多
(1)使用的字段: Forginkey(to=’类名’ to_field=’指定关联的字段(默认和id进行管理)’,on_delete=models.CASCADE, null=True)。
null=True: null 是针对数据库而言,如果 null=True, 表示数据库的该字段可以为空。
(2)将关系放到多的一方。
(3)正向查询:
①从多的一方查找一的一方(从有外键一方到没有外键的一方),
②使用方式: models.类名.objects.get(关键字=xx).关联对象属性(直接获取对应的对象了)
(4)反向查询,
①一的一方到多的一方(从没有外键的一方到有外键的一方)
②使用方式: models.类名.objects.类名小写_set.方法()
2.多对多
(1)使用的字段: ManyToManyField(to=’类名’)
(2)正向查询
①同一对多
②使用方式:models.类名.objects.get(关键字=xx).关联对象属性.方法()
(3)反向查询
①同一对多
②使用方式: 同一对多。
3:.一对一
字段:OneToOneField
字段参数
to:设置要关联的表。
to_field:设置要关联的字段。
on_delete: 同ForeignKey字段

三、同步数据库
1.Python manage.py makemigrations
2.Python manage.py migrate

四、admin的使用
1.创建超级用户 python manage.py createsuperuser, 输入用户名密码
2.需要将模型类在admin.py中进行注册
(1)amdin.site.register(类名)
3.访问路径 : xxxx/admin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值