РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
25 of 818 menu

Поле BinaryField

Поле BinaryField предназначено для хранения произвольных двоичных данных в базе данных. Оно используется в моделях Django для работы с файлами в двоичном формате, изображениями, зашифрованными данными или любыми другими бинарными объектами. Поле возвращает данные в виде байтовой строки (bytes). При использовании данного поля следует учитывать, что операции фильтрации и поиска по нему могут быть ограничены возможностями конкретной СУБД.

Синтаксис

from django.db import models class MyModel(models.Model): binary_data = models.BinaryField()

Параметры

Поле BinaryField принимает следующие параметры:

max_length - максимальная длина хранимых данных в байтах. Необязательный параметр.

editable - определяет, может ли поле быть изменяемым. По умолчанию True.

default - значение по умолчанию для поля.

null - разрешает ли поле значение NULL. По умолчанию False.

Пример

Создадим модель для хранения изображений в двоичном виде:

from django.db import models class Image(models.Model): name = models.CharField(max_length=100) data = models.BinaryField(max_length=1048576) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return self.name

Пример

Сохраним изображение в двоичном формате:

from myapp.models import Image from django.core.files import File with open('image.png', 'rb') as f: binary_content = f.read() image = Image.objects.create( name='my_image', data=binary_content )

Пример

Получим сохранённое изображение и проверим его размер:

from myapp.models import Image image = Image.objects.get(name='my_image') data_size = len(image.data) print("Image data size:") print(f"{data_size} bytes")

Результат выполнения кода:

"Image data size:" "1048576 bytes"

Пример

Создадим модель для хранения зашифрованных данных:

from django.db import models class EncryptedData(models.Model): title = models.CharField(max_length=200) content = models.BinaryField() is_active = models.BooleanField(default=True)

Пример

Сохраним зашифрованное сообщение в базу данных:

from myapp.models import EncryptedData import base64 encrypted_message = b'\x00\x01\x02\x03\x04\x05' data = EncryptedData.objects.create( title='secret message', content=encrypted_message ) print("Data saved:") print(data.title)

Результат выполнения кода:

"Data saved:" "secret message"

Пример

Проверим, существует ли запись с указанными данными:

from myapp.models import EncryptedData has_data = EncryptedData.objects.filter( content=b'\x00\x01\x02\x03\x04\x05' ).exists() print("Data exists:") print(has_data)

Результат выполнения кода:

"Data exists:" "True"

Смотрите также

  • поле FileField,
    которое используется для хранения загруженных файлов
  • поле ImageField,
    которое предназначено для хранения изображений
  • поле JSONField,
    которое хранит структурированные данные в формате JSON
  • поле TextField,
    которое хранит большие текстовые данные
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить