ORM常用字段
对象关系映射(object relation mapping),跟数据库里库、表、字段,省去了写SQL语句的麻烦,把这些SQL语句封装成了ORM方法
优点:方便、不需要去关心SQL语句怎么写
缺点:比SQL语句执行慢
CharField()字符串
对应MySQL的varchar
varchar根据字符长分配存储空间,读取速度慢
char固定长,读取速度快,占用空间
CharField有一个必填参数:
max_length 最大长度
integerField整型
范围--2147483648-2147483647
数量、评论次数、浏览次数
DecimalField带固定精度的十进制数
有两个必须的参数:
- max_digits
号码中允许的最大位数。请注意,此数字必须大于decimal_places
- decimal_places
与数字一起存储的小数位数,如果参与计算,需要转成浮点数
FloatField浮点数
imageField图片字段
里面写了上传图片的方法,不需要自己写上传代码了。imageField自动把图片写入到django后台指定的目录下,使用upload_to这个参数来指定上传位置
uoload_to 上传图片时指定位置
DateField 日期字段
datetime.datetime
不指定参数时,每一次创建都必须填写,不可以为空
指定参数以后,可以默认:
auto_now:第一次操作这一行数据时自动更新当前到表中
auto_now_add:第一次创建是保存的时间,以后操作不会发生变化
BooleanField布尔类型
真值和假值0和1
判断状态时使用
用户是否激活
商品是否删除
EmailField邮箱字段
带邮箱正则验证的,自动判断邮箱的格式
TextField大文本字段
编辑新闻、小说网站、商品详情介绍
字段选项
null
允许数据库字段为空
blank
为True时,模板当中的表验证允许为空
choice
class User(models.Model) :
"""
用户名、密码、邮箱、手机号
"""
SEX_CHOICE = (
(0,‘男’),
(0,‘女’)
)
username = models.CharField(max_length=64, unique=True, 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
默认值,为当前列添加一个默认值,用户不需要在前端输入
primary_key
设置为主键
unique唯一
verbose_name
把该属性在admin当中变为一个可名称
Meta选项
是djangoOrm内部的一个类,为orm提供一些操作
abstract
抽象基类
可复用的,共有的,abstract为True时,可以继承使用
db_table
为表名进行重命名
ordering
指定表的默认排序规则
verbose_name
在admin中表的显示名称
verbose_name_plural
去掉对象的复数,也就是admin当中显示时的s