Что такое Django ORM?

В современном мире технологии стали неотъемлемой частью нашей жизни, поскольку все вокруг нас оцифровано. Это также верно даже в деловом секторе. Компании, которые не используют правильную инфраструктуру и не могут оборудовать правильную технологическую архитектуру, в конечном итоге отстают от своих конкурентов. Это главным образом связано с тем, что в настоящее время объем данных, на которые предприятия и организации полагаются в своем анализе, вырос в геометрической прогрессии, и, как следствие, для того, чтобы они могли эффективно обрабатывать и интерпретировать их, им необходим правильный набор данных. инструментов и инфраструктуры для их поддержки.

Базы данных являются одной из самых популярных технологий, используемых для сбора и организации данных, поскольку они позволяют легко получить доступ к данным, управлять ими и обновлять их. Однако этим базам данных требуется система управления для выполнения этих задач. В основном язык SQL используется для выполнения операций в базе данных, однако по мере того, как ваше приложение растет и становится более сложным, становится чрезвычайно трудно иметь представление о том, что именно делает каждая операция. Именно здесь на сцену выходит техника объектно-реляционного сопоставления (ORM). Это позволяет запрашивать данные и манипулировать ими с помощью любого объектно-ориентированного языка программирования по вашему выбору. ORM уменьшают сложность вашего кода и делают его более понятным, что, в свою очередь, упрощает обновление, поддержку и повторное использование кода.

В этой статье мы рассмотрим Django ORM, который представляет собой ORM на основе Python и, следовательно, является одной из самых популярных технологий, используемых в наши дни.

 

Что такое Django?

Прежде чем мы перейдем к рассмотрению ORM Django, давайте сначала посмотрим, что на самом деле представляет собой эта технология Pythonic под названием Django.

Django — это бесплатный веб-фреймворк с открытым исходным кодом, разработанный на Python, поэтому он имеет очень чистый и аккуратный дизайн, а также простой, гибкий, надежный и масштабируемый. Он упрощает работу веб-разработчиков, поскольку предоставляет пользователям готовые компоненты, которые, в свою очередь, не позволяют им писать все с нуля и, как следствие, ускоряют их работу и сокращают накладные расходы на их веб-сайтах. В дополнение к этому, он чрезвычайно безопасен и помогает пользователям избежать проблем с безопасностью, таких как атаки восстановления пользовательского интерфейса, SQL-инъекции и т. д. У него также очень большое сообщество, которое всегда доступно через форумы и всегда готово предложить свою помощь другим.

Давайте теперь наконец посмотрим на Django ORM и некоторые из его основных функций.

 

Доступ к Django ORM

После установки Django и настройки его проекта нам обычно предоставляются следующие исходные файлы:

Что такое Django ORM?

 

Здесь mysite относится к имени созданного вами проекта. Все эти файлы используются по-своему, и важно знать, какую роль играет каждый файл. Здесь мы сосредоточимся на файле manage.py, который будет контролировать для нас множество различных вещей, таких как настройка сервера, выполнение миграций, связь с базой данных, а также вход в режим ORM.

Чтобы открыть Django ORM, откройте командную строку из основного каталога вашего проекта Django и выполните следующую команду:

$ python manage.py shell

 

Это откроет для нас интерактивную оболочку, которая позволит нам начать взаимодействие с базой данных с помощью ORM.

 

Управление базой данных с помощью запросов в Django ORM

Поскольку ORM позволяет нам взаимодействовать с базой данных, теперь мы можем писать различные запросы для извлечения и управления данными из базы данных. Однако, прежде чем мы сможем начать работу с базой данных в оболочке, мы сначала должны импортировать все связанные с ней модели. Это можно сделать, просто запустив команду в интерактивной оболочке, как показано ниже:

$ from appName.models import modelName

 

Здесь appName относится к имени вашего приложения, которое вы создали, и, следовательно, где в настоящее время хранятся ваши модели. ModelName относится к имени модели, которую вы хотите импортировать и использовать. Здесь вы можете импортировать несколько моделей.

Теперь вы можете получить доступ к объекту модели и прочитать из него данные. Например, если нам нужен список всех сообщений, мы можем просто получить их, выполнив следующую команду в нашем терминале:

$ Post.objects.all()

 

В ORM мы можем делать несколько других вещей, таких как создание новых данных базы данных, обновление данных и все другие команды базы данных, которые вы можете.

 

Моделирование базы данных

Одна из лучших вещей, которые Django ORM предоставляет своим пользователям, — это возможность автоматически связывать и устанавливать отношения между атрибутами объекта вашей модели и соответствующими полями таблицы. В базах данных существуют в основном три типа отношений. это отношения «один к одному», отношения «один ко многим» или «многие к одному» и отношения «многие ко многим».

Отношение «один к одному», как следует из названия, означает, что запись одной таблицы соответствует одной записи другой таблицы. В Django ORM мы можем легко установить это следующим образом:

class Parent(models.Model):

user = models.OneToOneField(

User,

on_delete=models.CASCADE,

primary_key=True,

)

name_of_father = models.CharField(max_length=100)

name_of_mother = models.CharField(max_length=100)

 

Здесь у каждого пользователя могут быть только одинокие биологические родители, и, следовательно, это отношения один-к-одному. Теперь, если мы удалим любого пользователя, имеющего доступ к этой модели, он также удалит модель 2-го пользователя, поскольку они зависят друг от друга.

Отношения «один ко многим» или «многие к одному» относятся к отношениям, при которых родительская запись может иметь несколько дочерних записей, однако у нее может быть только один дочерний элемент или ни одного дочернего. В Django ORM мы можем легко установить эту связь с помощью поля ForeignKey:

class Customer(models.Model):

name = models.CharField(max_length=255)

class Vehicle(models.Model):

customer = models.ForeignKey(

Customer,

on_delete=models.CASCADE

)

 

Как видно из приведенного выше кода, у клиента может быть несколько транспортных средств.

Наконец, отношения «многие ко многим» определяют отношения, при которых несколько таблиц могут быть связаны друг с другом. Мы можем создать это с помощью поля ManyToMany. В приведенном ниже примере мы создали две модели: одну для пользователя, а другую — для его сообщений. Также может быть несколько пользователей, поскольку у каждого пользователя может быть несколько сообщений.

class User(models.Model):

post = models.ManyToManyField(Post, blank=True)

friends = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True)

class Post(models.Model):

post = models.TextField()

likes = models.ManyToManyField(settings.AUTH_USER_MODEL, blank=True, related_name='user_likes')

Вывод

Django ORM — чрезвычайно мощный инструмент, который значительно упростил работу веб-разработчиков. Он имеет множество функций, таких как манипулирование моделями базы данных, установление отношений между моделями и многое другое. Вкратце, Django ORM — одна из лучших вещей, поставляемых с Django, и очень эффективная при выполнении поставленной перед ним задачи.



2021-03-22T11:58:27
Python