Django-12 ORM-基础字段
2021-07-13 本文已影响0人
JuliusL
创建模型类流程
- 创建应用
- 在应用下的modules.py中编写模型类
from django.db import models
class 模型类名(models.Model):
字段名 = models.字段类型(字段选项)
- 迁移同步 makemigrateions & migrate
模型类-字段类型
-
BooleanField()
- 数据库类型:tinyint(1)
- 编程语言中:使用True或Flase来表示值
- 在数据库中:使用1或0来表示具体的值
-
CharField()
- 数据库类型:varchar
- 注意:必须要指定max_length参数值
-
DateField()
- 数据库类型:date
- 作用:表示日期
- 参数:
- auto_now:每次保存对象时,自动设置该字段为当前时间(取值:True/Flase)
- auto_now_add:当对象第一次被创建时自动设置当前时间(取值:True/Flase)
- default:设置当前时间(取值:字符串格式时间如:'2019-6-1')
注意:以上三个参数只能多选一
-
DateTimeField()
- 数据库类型:datetime(6)
- 作用:表示日期和时间
- 参数同DateField
-
FloatField()
- 数据库类型:double
- 编程语言中和数据库中都使用小数表示值
-
DecimalField()
- 数据库类型:decimal(x,y)
- 编程语言中:使用小数表示该列的值
- 在数据库中:使用小数
- 参数:
- max_digits:位数总数,包括小数点后的位数。该值必须大于等于decimal_places
- decimal_places:小数点后的数字数量
-
EmailField()
- 数据库类型:varchar
- 编程语言和数据库中使用字符串
-
IntegerField()
- 数据库类型:int
- 编程语言和数据库中使用整数
-
ImageField()
- 数据库类型:varchar(100)
- 作用:在数据库中为了保存图片的路径
- 编程语言和数据库中使用字符串
-
TextField()
- 数据库类型:longtext
- 作用:表示不定长的字符串数据
模型类-字段选项
- 字段选项,指定创建的列的额外的信息
- 允许出现多个字段选项,多个选项之间使用,隔开
-
primary_key
- 如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数据库不会创建id字段
-
blank
- 设置为True时,字段可以为空,设置为False时,字段是必须填写的
-
null
- 如果设置为True,表示该列值允许为空
- 默认为False,如果此选项为False,建议加入default选项来设置默认值
-
default
- 设置所在列的默认值,如果字段选项null=False,建议添加此项
-
db_index
- 如果设置为True,表示为该列增加索引
-
unique
- 如果设置为True,表示该字段在数据库中的值必须是唯一(不能重复出现的)
-
db_column
- 指定列的名称,如果不指定的话则采用属性名作为列名
-
verbose_name
- 设置此字段在admin界面上的显示名称
模型类-Meta类
使用内部Meta类来给模型赋予属性,Meta类下有很多内建的类属性,可对模型类做一些控制
class Book(models.Model):
title = models.CharField("书名",max_length=50,default='')
price = models.DecimalField('价格',max_digits=7,decimal_places=2,default=0.0)
info = models.CharField('描述', max_length=100,default='')
class Meta:
db_table = 'book' #可改变当前模型类对应的表名