Django中modles.py怎么创建表-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联建站服务热线:18982081108,为您提供成都网站建设网页设计及定制高端网站建设服务,创新互联建站网页制作领域十载,包括成都水处理设备等多个行业拥有多年建站经验,选择创新互联建站,为企业锦上添花!

Django中modles.py怎么创建表?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

modles.py创建表

ORM字段介绍

Djano提供了很多字段类型,比如URL/Email/IP/ 但是mysql数据没有这些类型,这类型存储到数据库上本质是字符串数据类型,其主要目的是为了封装底层SQL语句;

1、字符串类(以下都是在数据库中本质都是字符串数据类型,此类字段只是在Django自带的admin中生效)

name=models.CharField(max_length=32)

EmailField(CharField):
IPAddressField(Field)
URLField(CharField)
SlugField(CharField)
UUIDField(Field)
FilePathField(Field)
FileField(Field)
ImageField(FileField)
CommaSeparatedIntegerField(CharField)

扩展

models.CharField 对应的是MySQL的varchar数据类型。

char 和 varchar的区别 :

char和varchar的共同点是存储数据的长度,不能超过max_length限制,

不同点是varchar根据数据实际长度存储,char按指定max_length()存储数据;所有前者更节省硬盘空间;

2、时间字段

models.DateTimeField(null=True)
date=models.DateField()

3、数字字段

(max_digits=30,decimal_places=10)总长度30小数位 10位)

数字:

num = models.IntegerField()
num = models.FloatField() 浮点
price=models.DecimalField(max_digits=8,decimal_places=3) 精确浮点

4、枚举字段

 choice=(
        (1,'男人'),
        (2,'女人'),
        (3,'其他')
    )
lover=models.IntegerField(choices=choice) #枚举类型

扩展

在数据库存储枚举类型,比外键有什么优势?

1、无需连表查询性能低,省硬盘空间(选项不固定时用外键)

2、在modle文件里不能动态增加(选项一成不变用Django的choice)

其他字段

db_index = True 表示设置索引
unique(唯一的意思) = True 设置唯一索引
联合唯一索引
class Meta:
unique_together = (
 ('email','ctime'),
)
联合索引(不做限制)
index_together = (
('email','ctime'),
)
ManyToManyField(RelatedField)  #多对多操作

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联-成都网站建设公司行业资讯频道,感谢您对创新互联的支持。


文章标题:Django中modles.py怎么创建表-创新互联
本文地址:http://ybzwz.com/article/dggdsg.html