Python - Django - ORM 不常用字段

BigAutoField(AutoField):

bigint 自增列,必须填入参数 primary_key=True

如果没有写自增列,则会自动创建一个列名为 id 的列

 

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):

可以为空的布尔值

 

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 格式的验证

 

TimeField(DateTimeCheckMixin, Field):

时间格式,HH:MM[:ss[.uuuuuu]]

 

DurationField(Field):

长整数,时间间隔,数据库中按照 bigint 存储,ORM 中获取的值为 datetime.timedelta 类型

 

FloatField(Field):

浮点型

 

DecimalField(Field):

10进制小数

参数:max_digits,小数总长度;decimal_places,小数位长度

 

BinaryField(Field):

二进制类型

 

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,上传图片的宽度保存的数据库字段名(字符串)

转载于:https://www.cnblogs.com/sch01ar/p/11284837.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 Django ORM 使用实例: 假设我们有一个简单的博客应用,其中包含两个模型:`Post` 和 `Comment`,`Post` 模型表示博客文章,`Comment` 模型表示博客文章下的评论。 首先,我们需要定义模型,可以在 `models.py` 文件中定义: ```python from django.db import models class Post(models.Model): title = models.CharField(max_length=200) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) class Comment(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE) author = models.CharField(max_length=100) content = models.TextField() created_at = models.DateTimeField(auto_now_add=True) ``` 这里我们使用 `CharField`、`TextField` 和 `DateTimeField` 等字段类型来定义模型的字段。另外,`Comment` 模型使用了 `ForeignKey` 字段来关联 `Post` 模型。 接下来,我们可以使用 Django ORM 来操作这两个模型。例如,我们可以创建一篇博客文章: ```python from myapp.models import Post post = Post(title='Hello World', content='This is my first blog post.') post.save() ``` 这里我们首先从 `models` 模块导入 `Post` 模型,然后创建一个 `Post` 实例,设置标题和内容,并调用 `save()` 方法保存到数据库中。 我们也可以查询博客文章: ```python posts = Post.objects.all() for post in posts: print(post.title, post.content, post.created_at) ``` 这里我们使用 `objects` 属性获取 `Post` 模型的所有记录,并通过 `for` 循环遍历每个记录,并输出标题、内容和创建时间。 如果我们要查询某篇博客文章的评论,可以使用 `Comment` 模型的 `filter()` 方法: ```python from myapp.models import Comment comments = Comment.objects.filter(post_id=post.id) for comment in comments: print(comment.author, comment.content, comment.created_at) ``` 这里我们使用 `filter()` 方法来查询 `post_id` 等于当前博客文章的评论,并输出每个评论的作者、内容和创建时间。 以上就是一个简单的 Django ORM 使用实例。当然,在实际开发中,我们还可以使用更多的 ORM 方法来操作数据库,例如 `get()`、`create()`、`update()`、`delete()` 等方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值