Перейти до вмісту
Блог › Налаштування ПЗ › Розгортання фреймворку Django на Linux VPS-сервері

Розгортання фреймворку Django на Linux VPS-сервері

Зростаюча з кожним роком популярність високорівневої мови розробки веб-застосунків Python стимулює появу та розвиток засобів створення сайтів на її основі. Одним із таких фреймворків є система Django, що підтримується розробниками некомерційної організації Django Software Foundation і яка вже встигла зарекомендувати себе як універсальний та неординарний засіб для розробки великих веб-застосунків. Розглянемо основні можливості вказаного фреймворку та продемонструємо процес його розгортання на VPS-сервері під управлінням Ubuntu 22.04.

Основні концепції побудови веб-фреймворків

Такі програмні системи дозволяють програмістам конфігурувати скільки завгодно складні веб-застосунки, використовуючи технології й методи, визначені мовою розробки системи, а також закладеними концепціями її побудови. Найпопулярніші з них засновані на моделі MVC (Model View Controller), що визначає три незалежні рівні функціонування системи — модель, представлення і обробку. Це дозволяє розробникові відволіктися від виконання технічних задач, які безпосередньо не пов’язані зі створенням вебпроєкту, значною мірою заощадити свій час та підвищити якість продукту.

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

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

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

Можливості фреймворку Django

Можна виділити такі характеристики фреймворку, які є для нього найпоказовішими:

  • Модульний підхід до побудови структури веб-застосунку;
  • Загальна багатомовна панель адміністрування;
  • Розширювана система шаблонів з наслідуванням;
  • Підтримка системи кешування;
  • Розвинута система фільтрації;
  • Власний API для доступу до баз даних;
  • Підключення зовнішніх модулів автентифікації.

Підготовка програмного середовища для розгортання Django

Перед встановленням будь-якого програмного продукту необхідно виконати ряд вимог щодо складу програмного оточення. Для Django список вимог матиме такий вигляд:

  • Оновлення системи;
  • Встановлення підтримуваної версії мови Python;
  • Формування віртуального оточення та його активація;
  • Встановлення менеджера пакетів pip.

Виконаємо по черзі зазначені вимоги.


Оновлення системи

Працюватимемо під обліковим записом суперкористувача, коли не потрібно вказувати приставку sudo у командах. Проте ми все одно будемо її використовувати, щоб показати необхідність наявності прав адміністратора для виконання конкретної команди.

Для початку оновимо список пакетів для оновлення. Для цього введемо в терміналі:

$ sudo apt update

Список налічує 79 пакетів. Оновимо їх:

$ sudo apt upgrade

Підтверджуємо виділення додаткових 51,8 MB дискового простору й продовжуємо процес оновлення.

Оновлення пройшло успішно!


Встановлення підтримуваної версії мови Python

Переглянути, яка версія Python необхідна для роботи обраної версії Django, можна за наступним посиланням. Ми хочемо встановити версію програми 4.0 або вище, а отже, версія мови Python має бути 3.8, 3.9 або 3.10.

Введемо в терміналі відповідну команду:

$ sudo apt install python3

Бачимо, що Python уже встановлений на цій машині. Його версія — 3.10.6, що цілком відповідає заявленим вимогам розробників Django.


Формування віртуального середовища та його активація

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

Створимо цей каталог і перейдемо до нього. Для цього введемо в терміналі:

$ mkdir testdjango
$ cd testdjango

Тепер нашим поточним каталогом став каталог testdjango.

Після цього необхідно встановити плагін системи Python, який відповідає за роботу віртуального середовища. Для всіх операційних систем сімейства Debian підтримується такий синтаксис команди для встановлення цього плагіна:

$ sudo apt install python3.10-venv

Підтверджуємо виділення додаткових 2,882 KB дискового простору та продовжуємо встановлення.

Встановлення пройшло успішно! Тепер можна перейти безпосередньо до створення віртуального середовища Python для каталогу testdjango. Для цього скористаємося наступною командою:

$ python3 -m venv virtenv

Де virtenv — це ім’я директорії, у якій зберігатимуться системні файли середовища. Загалом така директорія може мати будь-яке ім’я.

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

Слід мати на увазі, що віртуальне середовище не активується автоматично під час кожного переходу до відповідного каталогу. Для його активації потрібно запустити один зі сценаріїв, який зберігається в системній папці bin каталогу віртуального середовища. Запустимо цей сценарій:

$ source virtenv/bin/activate

У результаті віртуальне середовище для каталогу testdjango було успішно активовано. Ознакою цього є наявність у командному рядку назви каталогу virtenv у дужках.


Встановлення менеджера пакетів PIP

Будь-яка з технологічних платформ, зокрема й Python, має переважний протокол або пакетний менеджер для керування своїми програмними пакетами. Для Python таким менеджером є PIP (Package Installer for Python), орієнтований на роботу з Python-пакетами. Саме він дає можливість швидко сформувати ідентичне програмне середовище на багатьох машинах за допомогою заздалегідь підготовленого файлу зі списком потрібних пакетів для встановлення.

Встановимо цей протокол за допомогою наступної команди:

$ apt install python3-pip

Для розміщення необхідного програмного забезпечення потрібно виділити значні дискові ресурси — 239 MB. Підтверджуємо свою згоду на їхнє виділення, після чого розпочнеться тривалий процес копіювання файлів, як показано нижче.

У результаті PIP було успішно встановлено в системі. Тепер можна переходити до встановлення Django.

Встановлення Django

Процес встановлення програми складається всього з двох етапів:

  • підготовка файлу зі списком пакетів та/або параметрів для запуску програми;
  • запуск інсталятора.

Підготовка файлу requirements.txt

Раніше вже згадувалося про важливість цього файлу. Окрім формування списку пакетів, він дозволяє вказати необхідні параметри програмного середовища, яких може бути скільки завгодно. У нашому випадку скористаємося ним, щоб зазначити назву програми та бажану версію. Для цього відкриємо редактор nano:

$ nano requirements.txt

У новоствореному файлі введемо наступний рядок:

Django~=4.0

Збережемо внесені зміни й повернемося до командного рядка.


Запуск інсталятора

Введемо в терміналі команду для запуску інсталятора Django:

$ pip install -r requirements.txt

У результаті отримаємо повідомлення “Successfully installed Django-4.2.5”, що означає, що процес встановлення пройшов успішно. Зверніть увагу, що програма автоматично обрала найновішу версію серії 4 — 4.2.5. Якби у файлі requirements.txt ми вказали серію 3, то була б встановлена остання версія саме цієї серії.

Переглянемо вміст каталогу testdjango:

$ ls -l

Ми бачимо, що, крім файлу requirements.txt та каталогу virtenv, інших об’єктів немає. Це природно, адже структура проєкту ще не створена. Перейдемо до цього етапу.

Створення структури каталогів проєкту та налаштування конфігурації

Тепер створимо структуру нашого проєкту.
У каталозі віртуального середовища testdjango буде створено директорію проєкту. Це можна зробити за допомогою такої команди:

$ django-admin startproject newsite

де newsite — ім’я майбутнього проєкту, яке може бути будь-яким.

Перевіримо, що директорію newsite створено:

$ ls -l

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

$ ls newsite

Тут manage.py — один із керуючих скриптів Django. Переглянемо список системних файлів:

$ ls newsite/newsite

До системних файлів належать: asgi.py, __init__.py, settings.py, urls.py і wsgi.py.

Кожен із них виконує свою функцію, забезпечуючи працездатність застосунку — налаштування зв’язку з вебсервером, маршрутизацію (url) тощо. Нас цікавить файл settings.py, у якому задаються конфігураційні параметри проєкту: часовий пояс, мова, адресація, режим роботи тощо.


Редагування файлу settings.py

Використовуючи можливості конфігураційного файлу settings.py, встановимо значення найважливіших параметрів.

Для початку увімкнемо режим налагодження (DEBUG) і вкажемо IP-адресу нашого робочого хоста (ALLOWED_HOSTS).

Для цього введемо в терміналі:

$ nano newsite/newsite/settings.py

Якщо ви не маєте власного хостингу, параметр ALLOWED_HOSTS дозволяє вказати будь-який із доступних хмарних сервісів, наприклад PythonAnywhere, який забезпечує роботу будь-якого Python-додатка в хмарі. У цьому випадку значення параметра має бути таким:

ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']

Параметр DATABASES визначає тип і характеристики бази даних майбутнього застосунку.
За замовчуванням Django використовує базу sqlite3, як показано нижче.

Ми залишимо базу за замовчуванням без змін і перейдемо до її створення. Для цього виконаємо в терміналі команду міграції бази, яка ініціює процес формування бази даних нашого проєкту:

$ python newsite/manage.py migrate

Можна переконатися, що процес формування бази даних пройшов успішно.

Перевірка працездатності розгорнутої системи

Переконатися, що система працює, можна, наприклад, за допомогою команди визначення поточної версії програми:

$ django-admin version

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

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

$ source virtenv/bin/activate

Запустимо вебсервер:

$ python newsite/manage.py runserver

Тепер можна переконатися, що вебсервер успішно запущений і очікує на запити. У цьому стані термінал не сприймає введені команди, інтерпретуючи їх як текст. Якщо потрібно ввести інші команди — відкрийте ще одне вікно терміналу, де можна виконувати необхідні дії. Вебсервер при цьому продовжить працювати. Для завершення його роботи натисніть Ctrl+C, після чого система повернеться до командного режиму.

Оскільки в нас увімкнено режим налагодження, у браузері введіть адресу:

http://127.0.0.1:8000

У результаті з’явиться фірмове вітання Django, як показано нижче.

Це буде очевидним знаком того, що фреймворк Django повністю встановлено і він готовий до роботи — Install worked successfully!

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *