常用字段
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,上传图片的宽度保存的数据库字段名(字符串)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
问题内容: 我们有两个表。第一个包含名称(varchar)字段。第二个包含一个字段,该字段引用第一个表中的名称字段。对于与该名称关联的每一行,将重复第二个表中的此外键。通常不建议使用varchar / string字段作为两个表之间的联接吗?何时可以将字符串字段用作联接字段? 问题答案: 当然可以使用varchar作为键字段(或简单地将其连接)。它的主要问题取决于您通常在varchar字段中存储的
本文向大家介绍C#常用GDI+文字操作汇总,包括了C#常用GDI+文字操作汇总的使用技巧和注意事项,需要的朋友参考一下 本文实例汇总了C#常用GDI+文字操作,包含了文字的投影、倒影、旋转等常见的效果,在进行C#应用程序开发中有不错的实用价值。分享给大家供大家参考之用。具体如下: 一、投影文字 二、倒影文字 三、文字填充线条 四、旋转文字 五、印版文字 相信本文所述实例对大家的C#程序设计有一定的
我需要调用一个endpoint,它需要一个字段: 在我的测试中,我有以下代码: 不包含默认构造函数,所以为了避免这个问题,我创建了一个类,如下所示,以传递给: 问题是我仍然得到以下错误: 为什么它一直说我通过了一个抽象类?是一个类,而不是抽象类。 非常感谢。
问题内容: 我正在使用ColdFusion 8和SQL Server 2008 R2。 我试图查询一列值以获取具有范围内的值的行。该列应为数字,但不是。它被设置为varchar(由其他人)。有100,000多行数据。这是数据的伪样本: 我的查询如下所示: 该查询不会运行,因为where语句的列是varchar,并且出现转换错误,因此我必须将where语句更改为此: 现在,当我运行这样的查询时,它会
问题内容: 例外情况: 由以下代码引发: 注释的代码执行正常。 为什么在“ upsert”不正确的情况下插入是正确的? 问题答案: 使用更新运算符更新文档字段。您需要哪个带替换文件。 这里更多 更新操作员:https : //docs.mongodb.com/manual/reference/operator/update- field/ 更新一:https : //docs.mongodb.co
我在编程一个订单提交页面时遇到了一个相当大的问题,该页面的目的是提交一个订单的争议--提供两个字段被填写,但只有当一个字段少于另一个字段时。 基本上,一个是下拉,另一个是争端框,查询如下: 如果DispotestExtBox=“”而下拉框=“请选择...” 一切正常-提交按钮已启用 如果DisportestExtBox!=“”而下拉框=“请选择...” 错误(反之亦然,因此如果填充了Dispone