📜  BinaryField – Django 模型(1)

📅  最后修改于: 2023-12-03 14:39:31.436000             🧑  作者: Mango

BinaryField - Django 模型

在Django模型中,BinaryField是一种用于存储二进制数据的字段类型。它可以存储任何形式的二进制数据,例如图像、视频、音频、文档等等。由于它可以存储任意长度的二进制数据,因此BinaryField非常适合存储大型文件。

定义BinaryField字段

定义BinaryField字段很简单,只需要在模型中添加一个BinaryField即可。例如,让我们创建一个模型来存储用户上传的图像:

from django.db import models

class Image(models.Model):
    name = models.CharField(max_length=200)
    image_data = models.BinaryField()

在这里,我们定义了一个名为image_data的BinaryField字段来存储图像二进制数据。需要注意的是,我们没有指定max_length参数,因为BinaryField不需要指定长度。

存储二进制数据

存储二进制数据很简单,只需要将数据作为字节字符串传递给BinaryField字段即可。例如,让我们创建一个新的图像记录:

image = Image(name='example', image_data=b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR...')
image.save()

在这里,我们创建了一个Image实例并将图像二进制数据作为字节字符串传递给image_data字段。然后,我们保存了这个实例,它将被存储到数据库中。

读取二进制数据

要读取BinaryField字段中存储的二进制数据,只需要访问该字段即可。例如,让我们读取上面创建的图像数据:

image = Image.objects.get(name='example')
data = image.image_data

在这里,我们从数据库中检索了名为'example'的Image实例,并将其赋给image变量。然后,我们访问了image_data字段,将二进制数据存储在data变量中。

总结

BinaryField是Django模型中用于存储二进制数据的字段类型。它可以存储任何形式的二进制数据,并且非常适合存储大型文件。定义和存储BinaryField字段都很简单,只需将数据作为字节字符串传递给字段即可。