常用字段
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 是添加这条数据的日期
不常用字段
BigAutoField(AutoField):
bigint 自增列,必须填入参数 primary_key=True
如果没有写自增列,则会自动创建一个列名为 id 的列
SmallIntegerField(IntegerField):
短整型,-32768 到 32767
PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正短整型,0 到 32767
IntegerField(Field):
有符号的整数列,-2147483648 到 2147483647
PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):
正整数,0 到 2147483647
BigIntegerField(IntegerField):
有符号的长整型,-9223372036854775808 到 9223372036854775807
BooleanField(Field):
布尔值类型
NullBooleanField(Field):
可以为空的布尔值
TextField(Field):
文本类型
EmailField(CharField):
字符串类型,Django Admin 以及 ModelForm 中提供验证机制
IPAddressField(Field):
字符串类型,Django Admin 以及 ModelForm 中提供验证 IPV4 机制
GenericIPAddressField(Field):
字符串类型,Django Admin 以及 ModelForm 中提供验证 Ipv4 和 Ipv6
参数:protocol,用于指定 Ipv4 或 Ipv6, 'both',"ipv4","ipv6";unpack_ipv4,如果指定为 True,则输入 ::ffff:192.0.2.1 的时候,可解析为 192.0.2.1,开启此功能,需要 protocol="both"
URLField(CharField):
字符串类型,Django Admin 以及 ModelForm 中提供验证 URL
SlugField(CharField):
字符串类型,Django Admin 以及 ModelForm 中提供验证支持 字母、数字、下划线、连接符(减号)
CommaSeparatedIntegerField(CharField):
字符串类型,格式必须为逗号分割的数字
UUIDField(Field):
字符串类型,Django Admin 以及 ModelForm 中提供对 UUID 格式的验证
TimeField(DateTimeCheckMixin, Field):
时间格式,HH:MM[:ss[.uuuuuu]]
DurationField(Field):
长整数,时间间隔,数据库中按照 bigint 存储,ORM 中获取的值为 datetime.timedelta 类型
FloatField(Field):
浮点型
DecimalField(Field):
10进制小数
参数:max_digits,小数总长度;decimal_places,小数位长度
BinaryField(Field):
二进制类型
FilePathField(Field):
字符串,Django Admin 以及 ModelForm 中提供读取文件夹下文件的功能
参数:path,文件夹路径;match=None,正则匹配;recursive=False,递归下面的文件夹;allow_files=True,允许文件;allow_folders=False,允许文件夹
FileField(Field):
字符串,路径保存在数据库,文件上传到指定目录
参数:upload_to="",上传文件的保存路径;storage=None,存储组件,默认 django.core.files.storage.FileSystemStorage
ImageField(FileField):
字符串,路径保存在数据库,文件上传到指定目录
参数:upload_to="",上传文件的保存路径;storage=None 存储组件,默认 django.core.files.storage.FileSystemStorage;width_field=None,上传图片的高度保存的数据库字段名(字符串);height_field=None,上传图片的宽度保存的数据库字段名(字符串)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]