目录
ORM常用字段
1 概念:
对象关系映射()跟数据库里的库、表、字段、省去了写sql语句的麻烦,把这些语句都成了封装ORM方法
优点:方便、不需要去关心sql语句如何写
缺点:比sql语句执行慢
官方网站:https://docs.djangoproject.com/zh-hans/2.2/ref/models/fields/
CharField()字符串
对应mysql的varchar
varchar根据字符长分配存储空间,读取速度慢
char固定长,读取速度快,占用空间
CharField有一个必填参数
max_length 最大长度
IntegerField整型
范围:-2147483648-2147483647
数量、评论次数、浏览次数
DecimaIField带固定精度的十进制数
有两个必须参数
max_digits
号码中允许的最大位数。请注意,此数字必须大于或等于decimal_places。
decimal_places
与数字一起存储的小数位数。
如果参与计算,需要转成浮点数(float)
FlostField浮点数
ImageField图片字段
里面写了上传图片的方法,不需要写上传代码了,ImgeField自动把图片写入到django后台指定的目录下,使用upload_to这个参数指定上传位置
upload_to上传图片是指定位置
DateField日期类型
datetime.datetime
不指定参数时,每一次创建都必须填写,不可以为空
指定参数以后,可以默认:
auto_now:第一次操作这一行数据时,都会自动更新当前时间到表中
auto_now_add:第一次创建时保存的时间,以后操作不会发生变化
DateTimeField日期时间字段
datetime.datetime
不指定参数时,每一次创建都必须填写,不可以为空
指定参数以后,可以默认:
auto_now:第一次操作这一行数据时,都会自动更新当前时间到表中
auto_now_add:第一次创建时保存的时间,以后操作不会发生变化
BooleanField布尔类型
真值和假值0和1
判断状态时使用
用户是否激活
商品是否删除
EmailField邮箱字段
带邮箱正则验证。自动判断邮箱的格式@xx.com
TextField大文本字段
编辑新闻、小说网站、商品详情介绍
字段选项
null
允许数据库字段为空
blank
为True时,模板当中的表单验证允许为空
choice
class User(models.Model):
"""
用户名、密码、邮箱、手机号
"""
SEX_CHOICE = (
(0,'男'),
(1,'女')
)
username = models.CharField(max_length=64 ,verbose_name='用户名')
password = models.CharField(max_length=128,blank=True)
email = models.EmailField(max_length=64,null=True)
sex = models.IntegerField(choices=SEX_CHOICE,default=0)
default
默认值,当前列添加默认值,用户不需要在前端输入
oices=SEX_CHOICE,default=0)
create_time = models.DateTime