Типы данных и список полей модели Django
Самая важная часть модели и единственная необходимая часть модели - это список полей базы данных, которые она определяет. Поля задаются атрибутами класса. Будьте осторожны, чтобы не выбирать имена полей, которые конфликтуют с API моделей, например очистить, сохранить или удалить.
Пример:
из моделей импорта django.db класс Музыкант (models.Model): first_name = models.CharField (max_length = 200) last_name = models.CharField (max_length = 200) инструмент = models.CharField (max_length = 200) класс Альбом (models.Model): artist = models.ForeignKey (Музыкант, on_delete = models.CASCADE) name = models.CharField (max_length = 100) release_date = models.DateField () num_stars = models.IntegerField ()
Настройка поля для хранения любого типа данных похожа на определение типа данных в C / C ++ для хранения определенного целого числа, char и т. Д. Поля в Django - это типы данных для хранения определенного типа данных. Например, для хранения целого числа будет использоваться IntegerField. Эти поля имеют встроенную проверку для определенного типа данных, то есть вы не можете хранить «abc» в IntegerField. Аналогично и для других полей. Этот пост посвящен основным полям, которые можно использовать в моделях Django.
Вот некоторые ключевые атрибуты, о которых следует знать, прежде чем начинать использовать Django Fields.
Типы полей
Каждое поле в модели должно быть экземпляром соответствующего класса Field. Django использует типы классов полей для определения нескольких вещей:
- Тип столбца, который сообщает базе данных, какие данные следует хранить (например, INTEGER, VARCHAR, TEXT).
- Виджет HTML по умолчанию для использования при отображении поля формы (например, <input type = ”text”>, <select>).
- Минимальные требования к валидации, используемые в админке Django и в автоматически сгенерированных формах.
Django поставляется с десятками встроенных типов полей, которые можно использовать для сохранения любого типа данных, от числа до целого файла HTML. Вот список всех типов полей, используемых в Django.
Список типов данных и полей базовой модели
Имя поля | Описание |
---|---|
АвтоПоле | Это IntegerField, который автоматически увеличивается. |
BigAutoField | Это 64-битное целое число, очень похожее на AutoField, за исключением того, что оно гарантированно соответствует числам от 1 до 9223372036854775807. |
BigIntegerField | Это 64-битное целое число, очень похожее на IntegerField, за исключением того, что оно гарантированно соответствует числам от -9223372036854775808 до 9223372036854775807. |
BinaryField | Поле для хранения необработанных двоичных данных. |
BooleanField | Поле истина / ложь. Виджет формы по умолчанию для этого поля - CheckboxInput. |
CharField | Поле для хранения текстовых значений. |
DateField | Дата, представленная в Python экземпляром datetime.date |
Он используется для даты и времени, представленных в Python экземпляром datetime.datetime. | |
DecimalField | Это десятичное число с фиксированной точностью, представленное в Python экземпляром Decimal. |
DurationField | Поле для хранения периодов времени. |
EmailField | Это CharField, который проверяет, является ли значение допустимым адресом электронной почты. |
FileField | Это поле для загрузки файлов. |
FloatField | Это число с плавающей запятой, представленное в Python экземпляром с плавающей запятой. |
ImageField | Он наследует все атрибуты и методы от FileField, но также проверяет, что загруженный объект является действительным изображением. |
IntegerField | Это целочисленное поле. Значения от -2147483648 до 2147483647 безопасны во всех базах данных, поддерживаемых Django. |
GenericIPAddressField | Адрес IPv4 или IPv6 в строковом формате (например, 192.0.2.30 или 2a02: 42fe :: 4). |
NullBooleanField | Подобно BooleanField, но допускает NULL как одну из опций. |
PositiveIntegerField | Подобно IntegerField, но должно быть либо положительным, либо нулевым (0). |
PositiveSmallIntegerField | Подобно PositiveIntegerField, но допускает значения только в определенной (зависящей от базы данных) точке. |
SlugField | Слизняк - это газетный термин. Слаг - это короткая метка для чего-либо, содержащая только буквы, цифры, подчеркивания или дефисы. Обычно они используются в URL-адресах. |
SmallIntegerField | Это похоже на IntegerField, но допускает значения только в определенной (зависящей от базы данных) точке. |
Текстовое поле | Большое текстовое поле. Виджет формы по умолчанию для этого поля - Textarea. |
TimeField | Время, представленное в Python экземпляром datetime.time. |
URLField | CharField для URL-адреса, подтвержденного URLValidator. |
UUIDField | Поле для хранения универсальных уникальных идентификаторов. Использует класс Python UUID. При использовании в PostgreSQL хранится в типе данных uuid, в противном случае - в char (32). |
Поля отношений
Django также определяет набор полей, представляющих отношения. Имя поля Описание Внешний ключ Отношения "многие к одному". Требуется два позиционных аргумента: класс, к которому относится модель, и параметр on_delete. ManyToManyField Отношения "многие ко многим". Требуется позиционный аргумент: класс, к которому относится модель, который работает точно так же, как и для ForeignKey, включая рекурсивные и ленивые отношения. OneToOneField Индивидуальные отношения. Концептуально это похоже на ForeignKey с unique = True, но «обратная» сторона отношения будет напрямую возвращать один объект.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.