Django单表数据库操作

单表操作

测试脚本
当你只想测试django某一个py文件的内容,可以不用书写前后端的交互,直接写一个测试脚本即可
在这里插入图片描述
在这里插入图片描述

单表删除

在这里插入图片描述
在这里插入图片描述

数据库操作方法:
1.all():查询所有的数据
2.filter():带有过滤条件的查询
3.get():直接拿数据对象,不存在则报错
4.first():拿queryset里面的第一个元素
5.last():拿queryset里面的最后一个元素
在这里插入图片描述

6.values():获取指定的数据字段(可以看成是列表套字典的形式)
在这里插入图片描述

select app01_user.age from app01_user where name=’haha’;
7.values_list():获取指定的数据字段(可以看成是列表套元组的形式)
在这里插入图片描述

8.distinct():去重
在这里插入图片描述

9.order_by():排序
在这里插入图片描述

10.reverse():反转,前提是数据已经排序过了,如果没排序,无法反转
在这里插入图片描述

11.count():统计当前数据的个数
在这里插入图片描述

12.exclude():排除在外
在这里插入图片描述

13.exists():判断某个对象是否存在
在这里插入图片描述

queryset对象内部封装了sql语句,可以通过对象.query查看
在这里插入图片描述

第二种查看sql语句:去settings.py中写入一段话,之后每次运行时可以看到

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'DEBUG',
        },
    }
}

神奇的双下划线查询
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:

1.数据表名:django默认以小写应用名_类名作为数据库表名
2.关于主键:django会为表创建自动增长的主键列,每个模型类中只能有一个主键列,如果使用选项设置某属性为主键列,之后django不会再创建自动增长的主键列.默认创建的主键列属性为id,可以用pk代替
3.字段类型
(1)AutoField:自动增长的IntegerField.通常不指定,django会自动创建一个
(2)BooleanField:布尔值字段,值为True或False
(3)NullBooleanField:值为Null,True或False
(4)CharField:字符串,参数max_length表示最大字符数(必须指定)
(5)TextField:大文本字段,一般超过几千个字符的时候使用
(6)IntegerField:整数(范围有限,不能存手机号)
(7)DecimalField:浮点数,参数max_digits表示总位数,参数decimal_places表示小数位
(8)FloatField:浮点型
(9)DateField:年月日
参数:auto_now表示每次修改保存对象时,设置当前时间
auto_now_add表示当创建对象时,设置当前时间
两个参数互斥
(10)TimeField:时间.参数同DateField
(11)DateTimeField:日期时间.参数同DateField
(12)FileField:上传的文件的
(13)ImageField:继承FileField,对上传的文件进行校验,确保是图片
(14)EmailField:邮箱字段(在数据库中就是varchar(255),但是对于后面要将的内容有区分)
4.字段参数
null:表示某个字段可以为空
default:设置默认值
unique:如果设置为True,表示字段唯一
db_column:字段的名称,如果未定,则使用属性名称
db_index:若值为True,则在表中为字段创建索引
primary_key:主键(True)

5.关系字段
ForeignKey:外键,参数
to:要关联的表,
to_field:要关联的字段
on_delete:当删除关联表中的数据时,当前表与关联表的行为,一般用models.CASCADE
OneToOneField:一对一字段,参数同
ForeignKey
ManyToManyField:多对多,会自动创建第三张表

  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力学习的小初雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值