Django模型
什么是模型?
就是你在Django的models.py中编写的类,它必须继承Model.model类
每个类都是数据库中的一张数据表,类的字段既属性就是数据表中的字段
Django通过映射对象与数据库之间的关系,减小了学习Django的学习难度,也避免了开发者去枯燥的命令行中寻求数据库的魅力~~
1. 模型
- 首先,模型必须继承自
model.Model
类 - 需要在子应用(也就是你用
xx
命令创建的app,至于是什么命令,自己想一下,权当复习了)中的models.py
中创建类
就像这样:
from django.db import models # Create your models here. class StudyModel(models.Model): name = models.CharField(max_length=5) # 创建一个name字段,限制长度为5个字符 phone_number = models.CharField(max_length=11) # 创建一个手机号字段,长度为11个字符 sex = models.CharField(max_length=2) # 性别字段 age = models.IntegerField() # 年龄字段 class Meta: verbose_name = "学习数据库" verbose_name_plural = "数据库"
这个类的作用就是在你使用命令后创建一个名字为:StudyModel
的数据表,在你连接的数据库里面。
这个表的字段是:
- 姓名
- 手机号
- 性别
- 年龄
就相当于下列sql语句
create table StudyModel( "id" serial not null primary key, "name" varchar(5) not null, "phone_number" varchar(11) not null, "sex" varchar(2) not null, "age" int not null );
相比于sql语句是不是感觉轻松了很多,是的没错,Django不仅仅封装了这点方法,还有更多的方法。
其中操作数据库的数据可以通过对数据表进行实例化对象来进行操作,比如添加,删除,查询等。
2. 常见字段类型
字段类型与sql中的类型相对于,只不过被封装在Django中
2.1 AutoField类型
AutoField
是一个主键类型,就算你不设置,也会自动设置,且默认为id
2.2 IntergerField类型
IntergerField是一种整型数据,上面的AutoField就是是一种IntergerField,只不过因为他比较特殊,就单独拿出来说,他表示的范围为:
-2147483648
到
2147483647
2.3 CharField类型
在使用中,CharFidle类型还是很常见的,比如工作,职位,名字,介绍等~~
他可以设置max_length
属性,来限制字符的长度
2.4 DataField类型
这是一个时间类型,他可以设置两个参数:
- auto_now——每次保存对象时,自动将该字段设置为现在
- auto_now_add——当第一次创建对象时,自动将该字段设置为现在。
字段类型还有很多,比如文件类型,邮箱类型,日期类型···等以后用到了再说
3. Meta内部类
在我们的models.py代码中,我们使用了Meta内部类,并使用了两个参数
verbose_name
他的作用是给数据表一个名字,在后台站点