Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Модель Python: Django ORM

Модель — это воплощение понятия предметной области в коде приложения. В Django ORM каждая модель представлена классом в коде и таблицей в базе данных:

from django.db import models
from django.contrib.auth.models import AbstractBaseUser

class User(AbstractBaseUser):
    email = models.EmailField(unique=True)
    first_name = models.CharField(max_length=100, null=True)
    last_name = models.CharField(max_length=100)
    nickname = models.CharField(max_length=20, null=True)
    # ^ таким образом описанные атрибуты класса называют "полями"

    password = models.CharField(max_length=100)
    USERNAME_FIELD = 'email'
  1. Модель представляется классом только в языках с классами. Технически она может быть чем угодно в зависимости от языка.
  2. Поля модели описывают одноимённые столбцы таблицы и одновременно являются свойствами (properties) класса, что позволяет им следить, например, за присваиваемыми полям значениями. В других ORM и других языках столбцы могут быть описаны иначе.
  3. Связь "Модель-Таблица" — это особенность паттерна Active Record. В другом подходе, называемом Data Mapper, всё может быть по-другому.

Единственное, что нужно для работы модели — создать таблицу в базе данных. Для чего, в свою очередь, потребуется миграция. Django генерирует миграции по команде makemigrations и применяет по команде migrate:

poetry run python manage.py makemigrations

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 21 сентября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»