Django之Model操作汇总【ORM汇总篇九】

上一篇:Django之Model操作之select_related和prefetch_related【ORM篇八】点击跳转
目录篇:Django之model操作ORM目录篇 点击跳转
下一篇:Django之Model的表类和字段对象的一些常用操作【ORM篇十】 点击跳转

目录


已建立完毕的类表

跳转:实战之Django之Model建表流程 https://blog.csdn.net/Burgess_zheng/article/details/86564984

示例:

 

一.字段

    字段类型

mysql基本的类型:
字符串、数字、时间、二进制 
django提供和很多数据类型:
如CharField字符串、EmailField邮箱、UrlField路径等等
其实都是字符串,自己写的无所谓,(django提供很多类型是因为django的admin用的 
这些EmailField本质都是字符串,只不过在做django的admin的时候,起到了一些提示,如邮箱格式错误,长度不符合等等
django数据类型只需要:字符串、数字、时间、二进制类型,自增,就够了

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,           递归下面的文件夹
          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   上传图片的宽度保存的数据库字段名(字符串)
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)
     #二进制类型

    自定义无符号整数字段类型

class UnsignedIntegerField(models.IntegerField):
    def db_type(self, connection):
        return 'integer UNSIGNED'
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答您的问题。 首先,Django 是一个流行的 Python Web 框架,它提供了许多强大的功能,其中之一就是 ORM(对象关系映射)。 ORM 允许您使用 Python 对象来处理数据库操作,而不是直接编写 SQL 语句。这样做有很多好处,比如更容易维护和更易于理解。 下面是一些基本的 ORM 操作,用于在 Django 中执行增删改操作。 首先,要使用 ORM,您需要在您的 Django 项目中创建一个模型模型是一个 Python 类,它代表了数据库中的一个表。 例如,这是一个简单的模型类,它代表了一个名为 `Book` 的表: ``` from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) published_date = models.DateField() ``` 接下来,我们可以使用以下代码将一个新的 `Book` 对象插入到数据库中: ``` book = Book(title='Django for Beginners', author='William Vincent', published_date='2021-01-01') book.save() ``` 我们可以使用以下代码来更新一个现有的 `Book` 对象: ``` book = Book.objects.get(title='Django for Beginners') book.author = 'William S. Vincent' book.save() ``` 最后,我们可以使用以下代码来删除一个 `Book` 对象: ``` book = Book.objects.get(title='Django for Beginners') book.delete() ``` 这些是最基本的 ORM 操作,但是 Django ORM 还提供了许多其他的高级功能,比如过滤、排序和聚合查询等。如果您想了解更多信息,请查看 Django 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值