django(ORM操作)

django ORM简介
ORM,对象关系映射
作用,能够让一个不懂sql的小白也能够通过python面向的代码快捷的操作数据库
不足之处:封装程度太高,有时候sql语句的效率偏低,需要你自己写sql语句

orm不会帮你创建库,只能创建到表的层面
需要你自己提前创建好库

应用下面的model.py文件
1先去models.py中书写模型类
当你没有创建主键字段的时候orm会自动创建一个名为ID的主键字段
class User(models.Model):

id = models.AutoField(primary_key=True)

username = models.CharField(max_length=32)

password = models.IntegerField()

2数据库迁移密令
python3 manage.py makemigrations 将操作记录小本本上(migration文件夹)

python3 manage.py migrate 将操作真正同步到数据库中

只要修改了model.py中跟数据库相关的代码,就必须重新执行上述两条命令

 

简单的orm语句
利用ORM实现数据的增删改查操作
字段的增加改查
1可以直接在终端内直接给出默认值

2该字段可以为空

3直接给出字段设置默认值


数据的增删改查
1creat()
model.User.objects.create(**kwargs)

2对象.save()
先生成一个对象
user_obj = models.User(**kwargs)
对象调用save方法
user_obj.save()

查询
filter()
model.User.objects.filter()
返回结果是一个querSet对象,你可以把它看成一个列表套数据的对象
支持索引和切片操作,但是不支持负数,并且不推荐使用索引
.first()方法

查询用户表的所有数据
方式一
model.User.objects.filter()

方式二
model.User.objects.all()


orm定义表中三种关系
一对多
models.ForeignKey(to= '关联表名')
1在django 1.x.版本中外键默认是级联更新删除的
2会自动在字段加_id后缀,无论你有没有加
3外键字段建在多的一方

多对多
models.ManyToManyField()
1在django 1.x.版本中外键默认是级联更新删除的
2该字段是一个虚拟字段不会真正的在表中展示出来,而是用来告诉django
orm当前表和关联表是多对多的外键关系,需要自动创建第三张关系表
3在django orm中多对多的表关系有好几种创建方式

一对一
models.OneToOneField()
1在django 1.x.版本中外键默认是级联更新删除的
2会自动在字段加_id后缀,无论你有没有加
3外键字段建在任意一方均可,建议你建在查询频率较高的表中

posted @ 2021-07-09 17:15  昌尐  阅读(78)  评论(0编辑  收藏  举报