前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django进阶-2-ORM字段

Django进阶-2-ORM字段

作者头像
小团子
发布2019-07-18 15:54:23
5550
发布2019-07-18 15:54:23
举报
文章被收录于专栏:数据云团数据云团数据云团

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

① 字符串类

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() 存储数据;所有 char 更节省硬盘空间。

② 时间字段

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

③ 数字字段

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

# 数字
# 整型
num = models.IntegerField()
# 浮点型
floats = models.FloatField()
# 精确浮点
price = models.DecimalField(max_digits=8, decimal_places=3)

④ 枚举字段

choice = {
  (1, 'VIP'),
  (2, 'SVIP'),
  (3, '普通用户')
}

# 枚举类型
lover = models.IntegerField(choices=choice)

⑤ 其它字段

# 设置索引
db_index = True

# 设置唯一索引
unique(唯一) = True

# 联合唯一索引
class Meta:
  unique_together = (
    ('email', 'name'),
  )

# 联合索引
index_together = (
  ('telephone', 'email'),
)

# 多对多操作
ManyToManyField(RelatedField)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档