hand
_1_35_12
4
python3.X - Web - Django3.2.9
共43篇
python3.X - Web - Django3.2.9
返回栏目
0k
0.6k
0.1k
0.2k
0.1k
0.2k
6k
1k
6k
2k
2k
0.4k
0.3k
0.3k
1k
0.5k
3k
2k
0.6k
0.9k
1k
1k
3k
0.1k
0.3k
0.4k
0.4k
0.1k
0.3k
2k
1k
1k
1k
5k
1k
1k
0k
3k
2k
0k
0.1k
0.3k
0k
返回python3.X - Web - Django3.2.9栏目
作者:
贺及楼
成为作者
更新日期:2024-06-28 14:19:05
## 自增
V=models.AutoField(**options) #int;在Django代码内是自增
## 自增例子:
id = models.AutoField(primary_key=True)
pk = models.AutoField(primary_key=True)
V=models.CharField(max_length=None<, **options>) #varchar
id_card = models.CharField(max_length=18, null=True) # 身份证号
V=models.TextField(<**options>) #text
V=models.EmailField(<max_length=75, **options="">) #varchar
V=models.URLField(<verify_exists=true, **options="" max_length="200,">) #varchar
V=models.IntegerField(<**options>) #int (-2147483648,2147483647)
V=models.PositiveIntegerField(<**options>) #int 正整数(0,2147483647)
V=models.SmallIntegerField(<**options>) #smallint(-32768,32767)
V=models.PositiveSmallIntegerField(<**options>) #smallint 正整数(0,32767)
V=models.DecimalField(max_digits=必填, decimal_places=必填<, **options>)
## decimal 十进制小数123.123132
## max_digits数字中允许的最大位数 (数字最大长度)
## decimal_places存储的十进制位数(小数位个数)
a=models.DecimalField(max_digits=5, decimal_places=3)
## 可以的:1.000 12.000 1.100 1.120 1.123
## 不可以的:123.000 1.1234
a=models.DecimalField(max_digits=4, decimal_places=2)
## 可以的:1.00 12.00 1.10 1.12 1.123
## 不可以的:123.000 1.123
## DecimalField对应python的Decimal
## 数据库会自动补足够的零,如果不用的话,只能用下方FloatField
V=models.FloatField(<**options>) #浮点类型3.14
## FloatField对应python的float
a = models.FloatField(null=False, default=0.0)
V=models.BooleanField(**options) #boolean或bit
is_deleted = models.BooleanField(default='0', null=False) # 删除标志
V=models.NullBooleanField(<**options>) #bit字段上可以设置上null值
V=models.DateField(<auto_now=false, **options="" auto_now_add="False,">) #date #auto_now最后修改记录的日期;auto_now_add添加记录的日期2021-1-1
V=models.DateTimeField(<auto_now=false, **options="" auto_now_add="False,">) #datetime 例子2021-1-1 00:00:00
V=models.TimeField(<auto_now=false, **options="" auto_now_add="False,">) ## time 例子00:00:00
时间的写法需要增加代码,看下方
V=models.FileField(upload_to=None<, max_length=100, **options>) #varchar #upload_to指定保存目录可带格式,
V=models.ImageField(upload_to=None<, height_field=None, width_field=None, max_length=100, **options>) # upload_to保存上传的文件路径 height_field图片高 width_field图片宽
V=models.XMLField(schema_path=None<, **options>) #text ——————————————————————————–
V=models.IPAddressField(<**options>) #varchar
V=models.FilePathField(path=None<, match=None, recursive=False, max_length=100, **options>) #varchar
V=models.SlugField(<max_length=50, **options="">) #varchar,标签,内含索引
V=models.CommaSeparatedIntegerField(max_length=None<, **options>) #varchar
V=models.OneToOneField(User,blank=True,null=Ture,on_delete=models.SET_NULL) #一对一,字段关联表属性
V=models.ForeignKey(User,realted_name="user_log",blank=True,null=Ture,on_delete=models.SET_NULL) #一对多 外键,关联其它模型,创建关联索引
V=models.ManyToManyField(User,realted_name="group") #多对多,关联其它模型,创建多一个关联表(中间表)
字段名 | 描述 | 举例 | 作用于 | 写法 |
---|---|---|---|---|
null | 值是否设为空 | True False | ||
blank | 值是否可为空 | True False | ||
primary_key | 设置主键 | True | 整型 | V=models.CharField(max_length=None<, **options>, primary_key = True) |
auto_now | 时间自动添加 | True | 时间类型 | |
auto_now_add | 自动添加时间,但仅在创建的时候 | True | 时间类型 | |
max_length | 字段长度 | 字符串类型 | ||
default | 默认值 | xxx | ||
verbose_name | admin中显示的名字 | name | ||
db_column | 数据库字段名 | |||
unique | 唯一索引 | True | ||
db_index | 普通索引 | True |
class DateTimeFieldFormat(models.DateTimeField):
"""
数据库datetime类型字段格式化(%Y-%m-%d %H:%M:%S)
precision:需要保留的小数位数
"""
def __init__(self, verbose_name=None, name=None, precision=0, **kwargs):
self.precision = precision
super().__init__(verbose_name, name, **kwargs)
def db_type(self, connection):
return 'datetime(%d)' % self.precision
class xx(models.Model):
class Meta:
db_table = 'xx'
verbose_name = 'xx表'
add_time = DateTimeFieldFormat(auto_now_add=True)
update_time = DateTimeFieldFormat(auto_now=True)
python3.X - Web - Django3.2.9
整章节共43节
快分享给你的小伙伴吧 ~