Django中的ORM模型(回顾复习)

ORM模型介绍

模型配置

在这里插入图片描述
default:默认数据库
ENGINE:数据库引擎
NAME:数据库名称
USER:数据库登陆用户名
PASSWORD:数据库登陆密码
HOST:数据库访问地址
PORT:端口号

Django使用mysql数据库时需安装依赖:pip install mysqlclient

ORM字段类型

Django ORM模型中提供的常用字段:
在这里插入图片描述
对于CharField,max_length为必选参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于DateTimeField
auto_now:更新时间为记录更改的时间
auto_now_add:记录创建的时间

在这里插入图片描述

类型的选项(可选参数)

每个类型都有可选参数,部分类型有必传参数。
一般情况下,第一个参数不指定名称。

1.(大多数模型类型的第一个参数)verbose_name:表示字段的含义
2.null,blank:是否为Null,空值(空字符串)
3.db.column:数据库表中对应的字段名称
4.default:不填写字段值时的默认值
5.primary_key,unique:主键,唯一索引
6.help_text:帮助文字
7.choices:可供选择的选项(get_xxx_display():展示choices对应的值)

模型同步

1.检查模型是否编写无误
python manage.py check
2.生成同步原语
python manage.py makemigrations
3.执行同步
python manage.py migrate

模型的元数据

元数据:在模型里再写一个类(Meta)
作用:对模型的补充说明

db_table:模型映射的数据库表的名称
ordering:指定数据表的默认排序规则
verbose_name:供编程查看的字段名称
abstract:True,抽象类,不会生成数据库表
proxy:代理模型(代理父模型的功能,并对父模型功能进行扩充)

外键关联关系

  1. 一对一关系: OneToOneField(to,on_delete,parent_link=False,**options)
  2. 一对多关系: ForeignKey(to,on_delete,**options)
  3. 多对多关系: ManyToManyField(to,**options)

参数:
to:关联的模型(必传)

  1. 模型类
  2. 模型类(字符串)
  3. self(外键关联的是自己的情况)

on_delete:删除选项(必传)

  1. CASCADE:关联删除
  2. PROTECT:受保护,不允许被删除
  3. SET_NULL:设置为null,需要添加选项null=True
  4. SET_DEFAULT:设置默认值,需要添加选项default
  5. SET():传参设置值
  6. DO_NOTHING:什么都不做

related_name:是否需要反向引用,反向引用的名称
related_query_name:反向引用的名称

复合类型

Django自带模型(类容模型):ContentType
它会将创建的模块和定义的模型都记录下来

通过外键ForeignKey(ContentType)关联复合模型。
GenericForeignKey关联模型
GenericRelation反向关联

ORM实现CRUD

使用ORM新增数据

Django shell:
1.从终端进入项目目录下,python manage.py shell
2.从pycharm进入[Python Console]

首先需要引入写好的模型
1.save():保存数据
2.create():新增数据
3.bulk_create():批量新增数据

save()保存数据

user_obj = User(username=‘admin’,password=‘123’)
user_obj.save()

create()新增数据

user_obj = User.objects.create(username=‘admin’,password=‘123’)

bulk_create()批量新增数据

user1 = User(username=‘admin’,password=‘123’)
user2 =User(username=‘normal’,password=‘123’)
user3 = …

user_list = [user1,user2,user3,…]

User.objects.bulk_create(user_list)

外键关联数据的插入

user1 = User(username=‘admin’,password=‘123’)
LoginHistory.objects.create(user=user1, *args, **kwargs)
注:需要传入外键关联的对象或是对象id

使用ORM简单查询

  1. get(**kwargs)
  2. latest(*fields)/e
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值