AutoField:
int 自增列,必须填入参数 primary_key=True
如果没有写 AutoField,则会自动创建一个列名为 id 的列
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主键
CharField:
字符类型,必须提供 max_length 参数, max_length 表示最大字符长度
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主键 name = models.CharField(max_length=32)
IntegerField:
整数类型,范围在 -2147483648 到 2147483647
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主键 name = models.CharField(max_length=32) age = models.IntegerField()
DateField:
日期字段,日期格式 YYYY-MM-DD,相当于 Python 中的 datetime.date()
from django.db import models class Person(models.Model): id = models.AutoField(primary_key=True) # 自增的 id 主键 name = models.CharField(max_length=32) age = models.IntegerField() birthday = models.DateField(auto_now_add=True)
DatetimeField、DateField、TimeField 这三个时间字段,都可设置 auto_now_add、auto_now 属性
auto_now_add=True 的话,创建数据记录的时候会把当前时间赋给该字段
auto_now=True 的话,每次更新数据记录的时间会用来更新该字段
DateTimeField:
日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于 Python 中的 datetime.datetime()
执行命令:
manage.py@mysite2 > makemigrations app01 manage.py@mysite2 > migrate app01
去数据库中看一下
添加数据
只添加 name、age 字段
DateField 是添加这条数据的日期