Python

Що таке Django ORM?

Що таке Django ORM?
У сучасному світі технології стали невід’ємною частиною нашого життя, оскільки все навколо нас оцифровується. Це також вірно навіть у секторі бізнесу. Підприємства, які не використовують належну інфраструктуру та не здатні обладнати правильну технологічну архітектуру, у підсумку відстають від своїх конкурентів. Це головним чином тому, що в наш час обсяг даних, на які покладаються підприємства та організації для свого аналізу, зріс у геометричній прогресії, і в результаті для того, щоб вони могли ефективно обробляти та інтерпретувати їх, їм потрібно мати правильний набір інструментів та інфраструктури для їх підтримки.

Бази даних - одна з найпопулярніших технологій, яка використовується для збору та організації даних, оскільки вона дозволяє легко отримувати дані, керувати ними та оновлювати їх. Однак для виконання цих завдань ці бази даних потребують системи управління. Здебільшого мова SQL використовується для виконання операцій у базі даних, однак із збільшенням і ускладненням вашого додатка стає надзвичайно складно уявляти, що саме робить кожна операція. Саме тут в картину входить техніка Реляційне відображення об’єктів (ORM). Це дозволяє здійснювати запити та маніпулювати даними за допомогою об’єктно-орієнтованої мови програмування на ваш вибір. ORM зменшують складність вашого коду і роблять його більш зрозумілим, що, в свою чергу, полегшує оновлення, підтримку та повторне використання коду.

У цій статті ми розглянемо ORM Django, який є ORM на основі Python і, отже, одна з найпопулярніших технологій, яка використовується в наші дні.

Що таке Django?

Перш ніж перейти до розгляду ORM Django, давайте спочатку побачимо, що насправді є ця пітонічна технологія, що називається Django.

Django - це безкоштовний веб-фреймворк з відкритим кодом, розроблений на Python, і тому має дуже чистий та акуратний дизайн, а також простий, гнучкий, надійний та масштабований. Це надзвичайно полегшує роботу веб-розробників, оскільки надає користувачам готові компоненти, що, у свою чергу, заважає їм писати все з нуля, і як результат, пришвидшує їх роботу та зменшує накладні витрати на їх веб-сайті. На додаток до цього, він надзвичайно безпечний і допомагає користувачам уникати проблем безпеки, таких як атаки відшкодування інтерфейсу користувача, введення SQL тощо. У ньому також є надзвичайно велика спільнота, яка завжди доступна на форумах і завжди готова запропонувати свою допомогу іншим.

Давайте зараз нарешті розглянемо Django ORM та деякі його основні особливості.

Доступ до ORM Django

Після встановлення Django та налаштування його проекту ми зазвичай отримуємо такі початкові файли:

mysite тут посилається на назву проекту, який ви створили. Усі ці файли мають своє власне використання, і важливо, щоб потрібно було знати, яку роль відіграє кожен файл. Тут ми зосередимося на управлінні.файл py, який буде керувати багатьма різними речами для нас, такими як налаштування сервера, здійснення міграцій, спілкування з базою даних, а також вхід в режим ORM.

Щоб відкрити ORM Django, відкрийте командний рядок з головного каталогу проекту Django і запустіть таку команду:

$ python управління.py оболонка

Це відкриє для нас інтерактивну оболонку, яка дозволить нам розпочати взаємодію з базою даних за допомогою ORM.

Маніпулювання базою даних за допомогою запитів в Django ORM

Оскільки ORM дозволяє нам взаємодіяти з базою даних, тепер ми можемо писати різні запити для отримання та управління даними з бази даних. Однак перед тим, як ми можемо розпочати роботу над базою даних в оболонці, нам спочатку потрібно імпортувати всі моделі, пов'язані з нею. Це можна зробити простим запуском команди в інтерактивній оболонці, як показано нижче:

$ від appName.моделі імпорту ім'я моделі

Тут appName посилається на назву вашої програми, яку ви створили, а отже, де в даний час зберігаються ваші моделі. ModelName відноситься до назви моделі, яку потрібно імпортувати та використовувати. Тут можна імпортувати кілька моделей, як показано на прикладі нижче:

Тепер ви можете отримати доступ до об’єкта моделі та читати з нього дані. Наприклад, якщо нам потрібен список усіх постів, ми можемо просто отримати їх, запустивши в наш термінал таку команду:

$ Пошта.об'єктів.всі ()

Нижче наведено результат наведеної команди:

Ми можемо робити кілька інших видів роботи в ORM, такі як створення нових даних бази даних, оновлення даних та всі інші команди бази даних, які ви можете.

Моделювання баз даних

Однією з найкращих речей, які Django ORM надає своїм користувачам, є можливість автоматичного зв’язування та встановлення зв’язків між атрибутами об’єкта вашої моделі та відповідними полями таблиці. У базах даних існують переважно три типи взаємозв’язків. це стосунки «один до одного», відносини «один до багатьох» чи «багато до одного» та відносини «багато до багатьох».

Як випливає з назви, взаємозв’язок «один на один» - це запис однієї таблиці, який відповідає одному запису іншої таблиці. У Django ORM ми можемо легко встановити це наступним чином:

клас Батько (моделі.Модель):
користувач = моделі.OneToOneField (
Користувач,
on_delete = моделі.КАСКАД,
primary_key = Правда,
)
name_of_father = моделі.CharField (макс. Довжина = 100)
name_of_mother = моделі.CharField (макс. Довжина = 100)

Тут кожен користувач може мати лише одиноких біологічних батьків, а отже, це стосунки один до одного. Тепер, якщо ми видалимо будь-якого користувача, який має доступ до цієї моделі, він також видалить модель 2й користувач, оскільки вони залежать один від одного.

Один-до-багатьох або багато-до-одного відноситься до відносин, коли батьківський запис може мати кілька дочірніх записів, однак він може мати лише одну або жодну дочірню історію. У Django ORM ми можемо легко встановити ці відносини, використовуючи Зовнішній ключ поле:

клас Замовник (моделі.Модель):
ім'я = моделі.CharField (макс. Довжина = 255)
клас Автомобіль (моделі.Модель):
замовник = моделі.Зовнішній ключ(
Клієнт,
on_delete = моделі.КАСКАД
)

Як видно з наведеного вище коду, клієнт може мати кілька транспортних засобів.

Нарешті, взаємозв’язок «багато-до-багатьох» визначає взаємозв'язок, коли кілька таблиць можуть співвідноситись між собою. Ми можемо створити це за допомогою ManyToMany поле. У наведеному нижче прикладі ми створили дві моделі, одну для користувача та іншу для їх публікацій. Також може бути декілька користувачів, оскільки кожен користувач може мати кілька повідомлень.

клас Користувач (моделі.Модель):
пост = моделі.ManyToManyField (Публікація, порожнє = True)
друзі = моделі.ManyToManyField (налаштування.AUTH_USER_MODEL, порожнє = True)
клас Пошта (моделі.Модель):
пост = моделі.TextField ()
лайки = моделі.ManyToManyField (налаштування.AUTH_USER_MODEL, порожнє = Істина, пов'язане_ім'я = 'сподобалось_користувачеві')

Висновок

Django ORM - надзвичайно потужний інструмент, який значно полегшив роботу веб-розробників. Він має різноманітні функції, такі як маніпулювання моделями баз даних, встановлення взаємозв'язку між моделями та багато іншого. У двох словах, Django ORM - одна з найкращих речей, що поставляються разом з Django, і є високоефективною на роботі, яку їй надають.

Як використовувати AutoKey для автоматизації ігор Linux
AutoKey - це утиліта автоматизації робочого столу для Linux та X11, запрограмована на Python 3, GTK та Qt. Використовуючи його сценарії та функціональ...
How to Show FPS Counter in Linux Games
Linux gaming got a major push when Valve announced Linux support for Steam client and their games in 2012. Since then, many AAA and indie games have m...
How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...