Як встановити Django на сервер

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

Що таке Django framework

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

Основні технологічні рішення:

Загалом розробники фреймворку йдуть виключно «своїм шляхом», відмовляючись дотримуватися будь-яких традицій у програмуванні. Тим не менш, це не завадило їхньому програмному продукту стати затребуваним для таких добре відомих у всьому світі веб-ресурсів, як, наприклад, Instagram, YouTube та багатьох інших.

Встановлення віртуального середовища Python на сервер

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

Налаштування проводимо на віртуальному сервері з Ubuntu з тарифної сітки - тут

Налаштуємо це середовище. Для початку перевіримо версію мови, встановлену на нашому сервері Ubuntu. Для цього наберемо в терміналі:

$ python3 --version

Як бачимо, встановлена ​​версія Python 3.8.10, яка є однією з останніх. У випадку, якщо цей компонент не був встановлений, то нам довелося б набрати наступну команду для сервера на ОС Debian або Ubuntu:

 $ sudo apt install python3

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

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

$ mkdir djangogirls
$ cd djangogirls

Для ОС Debian/Ubuntu команда для встановлення необхідних пакетів для формування віртуального оточення буде такою:

$ sudo apt install python3.8-venv


Після запуску команди буде виведена інформація про пакети, що встановлюються в системі, і про необхідний об'єм дискового простору для їх встановлення. Після підтвердження згоди на встановлення (клавіша Y), виконання команди продовжиться. Нижче наведено останній екран команди з повідомленнями про встановлені компоненти.

Після цього створимо для каталогу djangogirls віртуальне оточення Python. Це можна зробити за допомогою наступної команди:

$ python3 -m venv myvenv

Де myvenv – ім'я каталогу, де створять системні файли віртуального оточення. Ім'я може бути довільним.

Після виконання команди в каталозі djangogirls буде створено каталог із файлами віртуального оточення, тобто myvenv. Для того, щоб у цьому переконатися, достатньо набрати команду перегляду вмісту каталогу в Ubuntu:

$ ls

Як бачимо, каталог myvenv з'явився.

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

$ source myvenv/bin/activate

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

Установка pip для работы з Python/Django

Pip (Package Installer for Python) є менеджером пакетів, аналогічним менеджеру apt для Ubuntu. Він використовується для керування програмним забезпеченням, створеним мовою Python. Для цього при запуску менеджера зазвичай використовується файл з ім'ям requirements.txt, в якому перераховуються назви програмних пакетів та їх версії. Це дозволяє успішно відтворювати список пакетів, що встановлюються, на іншій машині або в іншому віртуальному оточенні.

Для встановлення Django він необхідний pip. Введемо в терміналі команду встановлення цього програмного забезпечення для Ubuntu:

$ apt install python3-pip

У вікні терміналу буде виведена інформація про тип пакетів, що встановлюються, і обсяг дискового простору, необхідного для їх встановлення. Після підтвердження (Y) виконання команди продовжиться. Нижче показано процес встановлення пакетів у процесі (98% виконано).

Останній екран виходу команди показано нижче. Тут видно, що менеджер пакетів pip успішно встановлений у системі.

Установка і налаштування Django на VPS

Перед встановленням Django підготуємо файл requirements.txt, в якому впишемо назву програми та її версію. Для цього введемо в терміналі команду виклику редактора nano:

$ nano requirements.txt

Якщо редактор nano ще не встановлений на сервері, його можна зробити через команду:

$ apt update nano

$ apt install nano

При цьому з'явиться вікно редактора з «чистим» файлом, в який впишемо наступний рядок  з версією Django. Підтримуванні  версії Python для використання потрібної версії Django можна перевірити в документації за посиланням:

Django~=3.2.10

Потім збережемо внесені у файл зміни (ctrl+O) та вийдемо з редактора (ctrl+X).

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

$ pip install -r requirements.txt


Нижче наведено екрани, на яких відображається процес встановлення програми «у русі».

З останнього скріншоту видно, що установка пройшла успішно і програма Django встановлена ​​(Successfully installed Django-3.2.15), що нам потрібно. Причому версія встановленої програми більш нова, ніж та, яку ми вказували у файлі.

Далі створюємо структуру директорій для проекту через команду:

$ django-admin startproject mysite

 де mysite - назва проекту.

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

$ ls -la ~/djangogirls/mysite/manage.py ~/djangogirls/mysite/mysite/


Ми бачимо, що крім каталогу віртуального оточення тут з'явився файл manage.py з керуючим скриптом та каталог mysite, в якому зберігаються файли для налаштування нашого сайту. Так, у файлі settings.py можна задати будь-які установки щодо його функціонування та адресації. Тут всі установки зберігаються у форматі: параметр = значення. Для перегляду частини вмісту цього файлу наберемо в терміналі:

$ nano mysite/settings.py


Для створення бази даних сайту скористаємося командою:

$ python manage.py migrate

При цьому буде створено базу типу sqlite3, яку встановлено за замовчуванням у файлі settings.py. Відповідний код файлу settings.py можна побачити на скріншоті нижче.

У цьому файлі можна встановити, наприклад, такі параметри: мову сайту (параметр LANGUAGE_CODE); адреси статичних файлів (параметр STATIC_ROOT); адресу хоста (параметр ALLOWED_HOSTS) і зробити багато інших параметрів для сайту.

Як перевірити інсталяцію Django на сервері

Дізнатися, чи встановлена ​​на сервері програма Django, і яка її версія, можна різними способами. Найпростіший із них – ввести команду django-admin з відповідним параметром:                      

$ django-admin version

Ми бачимо, що програма встановлена ​​і її версія – Django 3.2.15.

Для запуску в Інтернеті нашого проекту на Django, який нами вже був налаштований за допомогою файлу settings.py, необхідно виконати наступне:

Активація віртуального оточення. Перейдемо до каталогу програми та наберемо у терміналі:

$ source myvenv/bin/activate

  

Активація пройшла успішно.

Запуск веб-сервера

Для запуску веб-сервера скористаємося наступною командою:

$ python manage.py runserver 0:8000

Сервер успішно запущено.

Щоб проект був доступний за IP - адресою, відкриваємо файл з налаштуваннями

$  vim djangogirls/mysite/mysite/settings.py

Шукаємо у файлі параметр ALLOWED_HOSTS і навпроти нього вказуємо  адресу сервера з вашим проектом.

Перегляд проекту у браузері

Для цього наберемо в адресному рядку браузера IP-адресу нашого сервера і порт,  та відкриємо сторінку:

http://1.1.1.1:8000/


Ми бачимо, що наш проект Django запрацював. Наразі можна займатися його розвитком.

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