django读取mysql某个字段,django--models数据库操作---字段
及参数
models操作 ---- 字段 及 参数
所有字段类型:
AutoField(Field)
- int⾃增列,必须填⼊参数 primary_key=True
BigAutoField(AutoField)
- bigint⾃增列,必须填⼊参数 primary_key=True
注:当model中如果没有⾃增列,则⾃动会创建⼀个列名为id的列
from django.db import models
class UserInfo(models.Model):
# ⾃动创建⼀个列名为id的且为⾃增的整数列
username = models.CharField(max_length=32)
class Group(models.Model):
# ⾃定义⾃增列
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
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):
- 可以为空的布尔值
CharField(Field)
- 字符类型
-
必须提供max_length参数, max_length表⽰字符长度
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格式的验证
FilePathField(Field)
- 字符串,Django Admin以及ModelForm中提供读取⽂件夹下⽂件的功能
- 参数:
path, ⽂件夹路径
match=None, 正则匹配
recursive=False, 递归下⾯的⽂件夹django admin 自定义页面
allow_files=True, 允许⽂件
allow_folders=False, 允许⽂件夹
FileField(Field)
- 字符串,路径保存在数据库,⽂件上传到指定⽬录
- 参数:
upload_to = "" 上传⽂件的保存路径
storage = None 存储组件,默认files.storage.FileSystemStorage
ImageField(FileField)
-
字符串,路径保存在数据库,⽂件上传到指定⽬录
- 参数:
upload_to = "" 上传⽂件的保存路径
storage = None 存储组件,默认files.storage.FileSystemStorage
width_field=None, 上传图⽚的⾼度保存的数据库字段名(字符串)
height_field=None 上传图⽚的宽度保存的数据库字段名(字符串)
DateTimeField(DateField)
- ⽇期+时间格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]
DateField(DateTimeCheckMixin, Field)
- ⽇期格式 YYYY-MM-DD
TimeField(DateTimeCheckMixin, Field)
-
时间格式 HH:MM[:ss[.uuuuuu]]
DurationField(Field)
- 长整数,时间间隔,数据库中按照bigint存储,ORM中获取的值为datetime.timedelta类型FloatField(Field)
- 浮点型
DecimalField(Field)
- 10进制⼩数
- 参数:
max_digits,⼩数总长度
decimal_places,⼩数位长度
BinaryField(Field)
- ⼆进制类型
#注意:这些操作,如果是直接⽤数据库操作语句进⾏添加的话,不会有报错或是警告之类的信息#但是如果换到后台管理页⾯上,进⾏添加则会有相应的警告!
常⽤字段类型:
字符串:
EmailField(CharField):
IPAddressField(Field)
URLField(CharField)
SlugField(CharField)
UUIDField(Field)
FilePathField(Field)
FileField(Field)
ImageField(FileField)
CommaSeparatedIntegerField(CharField)
时间类:
models.DateTimeField(null=True)
数字:
num = models.IntegerField()
num = models.FloatField()
mum = models.DecimalField(max_digits=30,decimal_places=10) #精确的⼩数类型枚举(Django): #应⽤于固定的,百年不修改⼀次的选项,例如:性别
color_list = (
(1,'⿊⾊'),
(2,'⽩⾊'),
(3,'蓝⾊')
)
color = models.IntegerField(choices=color_list)
1. ⾃⼰操作:
⾃⼰取,⾃⼰⽤
2. 给Django admin使⽤
应⽤场景:选项固定
*PS: 外键应⽤于经常发⽣变动的选项!FK选项动态
参数:
字段参数:
null=True,
default='1111',
db_index=True,
unique=True,
max_length=xxx 表⽰字符长度
primary_key= True 主键
class Meta: # ⽤于创建多列间的组合操作
# unique_together = ( #创建有关联的联合唯⼀索引
# ('email','ctime'),
# )
# index_together = ( #创建普通的索引
# ('email','ctime'),
# )
DjangoAdmin提供的参数:
verbose_name Admin中显⽰的字段名称
blank Admin中是否允许⽤户输⼊为空
editable Admin中是否可以编辑
help_text Admin中该字段的提⽰信息
choices Admin中显⽰选择框的内容,⽤不变动的数据放在内存中从⽽避免跨表操作如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '⼤表'),],default=1)
error_messages ⾃定义错误信息(字典类型),从⽽定制想要显⽰的错误信息;
字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date
如:{'null': "不能为空.", 'invalid': '格式错误'}
validators ⾃定义错误验证(列表类型),从⽽定制想要的验证规则
validators import RegexValidator
validators import EmailValidator,URLValidator,DecimalValidator,\ MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator
如:
test = models.CharField(
max_length=32,
error_messages={
'c1': '优先错信息1',
'c2': '优先错信息2',
'c3': '优先错信息3',
},
validators=[
RegexValidator(regex='root_\d+', message='错误了', code='c1'),
RegexValidator(regex='root_112233\d+', message='⼜错误了', code='c2'), EmailValidator(message='⼜错误了', code='c3'), ]
***注意点:关于字段:
a. 直接通过数据库操作语句创建的话,不会报错!
models.ate(....)
-- ModelForm
b. 但是字段会影响Django⾃带的管理⼯具admin,不是该字段类型的数据,即刻报错!PS:其他
1、⾃定义⽆符号整数字段
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论