ORM | DB |
类 | 数据表 |
对象 | 数据行 |
属性 | 字段 |
创建模型类的流程:
创建应用
在应用下的models.py中编写模型类
from django.db import models
class 模型类名(models.model):
字段名 = models.字段类型(字段选项)
迁移同步文件:
1.生成迁移文件 -执行python3 manage.py makemigrations ,将应用下的models.py文件生成一个中间文件,并保存migrations文件夹中。
2.执行迁移脚本程序- 执行python3 manage.py migtrate,执行迁移程序实现迁移。将每个应用下的migrations目录中的中间文件同步到数据库中
任何关于表结构的修改,务必在对应模型类上修改
例:为boostore_book表添加一个名为info字段varchar(100)
#file文件: from django.db import models # Create your models here. class book(models.Model): title = models.CharField('书名', max_length=50, default='') price = models.DecimalField('价格',max_digits=7,decimal_places=2) info = models.CharField('描述',max_length=100,default='' )
django模型类-字段类型
BooleanField()
数据库类型:tinyint(1)
编程语言中:使用True或False来表示值
在数据库中:使用1或0来表示具体的值
CharField()
数据库类型:varchar
注意:必须要指定max_length参数值
DateField()
数据库类型:date
作用:表示日期
参数:
auto_now:每次保存对象时,自动设置字段为当前时间(取值:True/False).
auto_now_add:当对象第一次被创建时自动设置当前时间(取值:True/False).
default:设置当前时间(取值:字符串格式时间如‘2019-6-1’)。
以上三个参数只能多选一
DateTimeField()
数据库类型datetime(6)
作用大:表示日期时间
参数同DateField
FloatField()
数据库类型:double
编程语言中和数据库中都使用小数表示值
DecimalField()
数据库类型嗯:decimal(x,y)
编程语言中:使用小数表示该列的值
数据库中:使用小数
参数:
max_digits:总数位数。该值必须大于等于decimal_places
decimal_places:小数点后的数字力量
EmaiField()
数据类型:varchar
编程语言和数据库中使用字符串
integerField()
数据库类型:int
编程语言和数据库中使用整数
imageField()
数据库类型.varchar(100)
作用:在数据库中为保存图片的路径
编程语言和数据库中使用字符串
TextField()
数据库类型:longtext
作用:表示不定长的字符数据
更多详见DJANGO官方文档
实例:
在bookstore/models.py中添加一个模型类
Author - 作者
name-CharField 姓名 长度最大11
age -intergerField 年龄
email - EmailField 邮箱
查看数据表:
1.mysql> use mysite3;
2.mysql> desc bookstore_book;