---
title: Пример запуска Django-проекта
description: Примерное руководство по деплою проекта на Django в cPanel-хостинге
navigation: true

badges:
  - value: Веб-хостинг
    to: /shared-hosting
    target: _self
    icon: lucide:layout-template

authors:
  - name: Sherali Salomidinov
    username: coderplusdesigner
---

:badge[cPanel v136.0.24]{type="info"}

Данная статья послужит небольшим руководством по запуску вашего Django-проекта на нашем хостинге через панель управления cPanel.

Статья включает следующие шаги:
1. Ознакомление с примерным проектом
2. Запуск проекта на отдельном хостинге (deployment on production)
3. Удаление примерного проекта с хостинга

> Внимательно следуйте процессу и выполняйте шаги в правильной последовательности. Это поможет вам лучше понять процесс деплоя Django-проекта и впоследствии применять полученные знания к собственным проектам.

## Примерный проект

В качестве примера мы выбрали проект под названием "Link Vault", то есть хранилище полезных ссылок. В нём мы рассмотрим добавление категорий и самих ссылок.

Проект состоит из двух простых веб-страниц (список ссылок и форма добавления ссылки), а Django контролирует добавление каждой категории и ссылки в базу данных.

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_1.png
srcDark: /images/shared-hosting/en/django-sample_1.png
alt: Fig 1 | Django sample project
---
::

1. Название проекта (project). Это основная директория проекта, в которой располагаются основные настройки проекта, включая файлы `settings.py` и `wsgi.py`.

    Эта папка была создана командой создания проекта и по принятой практике названа `core`:
    ```python [Django]
    django-admin startproject core .
    ```
2. Папка "links" является директорией приложения. В ней хранятся все конфигурационные файлы, отвечающие за создание и управление полезными ссылками.
    Для её создания использовалась команда:
    ```python [Django]
    python manage.py startapp links
    ```
3. Папка, в которой находятся файлы веб-страниц проекта.
4. `venv` — это папка виртуального окружения. В ней находятся все библиотеки, используемые проектом. Загружать её на хостинг не требуется. На хостинге виртуальное окружение создаётся отдельно и хранится в другом месте. Это мы рассмотрим позже.
    Команды для создания и активации виртуального окружения:
    ```python
    python -m venv venv
    .\venv\Scripts\activate
    ```
5. `.env` — файл, содержащий все конфиденциальные переменные окружения, ключи и пароли.
6. Файл `requirements.txt` используется для хранения списка всех необходимых библиотек с их версиями и удобной последующей установки.
    Создаётся он следующим образом:
    ```python
    pip freeze > .\requirements.txt
    ```

Полный проект предоставляется вам для изучения и ознакомления:

:read-more{icon="lucide:link" title="Github" to="https://github.com/coderPlusDesigner/hms-django-sample/tree/main" target="_blank"}

:download-button{ filename="django-sample.zip" title="Скачать примерный проект в формате .zip" url="/sample-projects/django-sample.zip"}

Откройте папку проекта через терминал и выполните:

::code-group
  ```powershell [Windows PowerShell]
  py -m venv venv
  .\venv\Scripts\activate
  py .\manage.py runserver
  ```

  ```bash [Linux bash]
  python3 -m venv venv
  source venv/bin/activate
  python3 manage.py runserver
  ```
::

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_2.png
srcDark: /images/shared-hosting/en/django-sample_2.png
alt: Fig 2 | Django sample project
---
::

## Загрузка проекта на сервер

Для начала спланируем последовательность действий:
1. Создадим отдельный поддомен для проекта
2. Создадим базу данных и пользователя базы данных (MySQL)
3. Создадим новое Python Environment через интерфейс "Setup Python App"
4. Загрузим ZIP-архив проекта в папку поддомена
5. Настроим конфигурационные файлы для production
6. Через терминал cPanel установим необходимые библиотеки и выполним миграции Django в новую базу данных
7. Перезапустим Python App

Если готовы, приступим!

### 1. Создание поддомена

Для проекта создадим поддомен `django.scroll.uz` на нашем хостинге.

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_3.png
srcDark: /images/shared-hosting/en/django-sample_3.png
alt: Fig 3 | Django sample project
---
::

:read-more{icon="lucide:link" title="Подробнее о добавлении Addon-домена в cPanel читайте здесь" to="/shared-hosting/cpanel/domains-section/domains-interface#дополнительные-припаркованные-и-поддомены" target="_blank"}

### 2. Создание базы данных и пользователя

Интерфейс "Database Wizard" в cPanel пошагово проведёт вас через процесс создания базы данных MySQL, пользователя и назначения необходимых прав доступа.

1. На первом шаге задайте имя базы данных. Мы назовём её `scroll_django` (часть `scroll_` формируется автоматически на основе имени пользователя хостинга и у вас будет другой).
2. На следующем шаге создайте пользователя. Мы назвали его `scroll_django-user` (у вас имя также будет отличаться). Задайте ему надёжный пароль и сохраните его.
3. На третьем шаге назначьте права пользователю. Мы выбираем "ALL PRIVILEGES", чтобы пользователь получил полный доступ к управлению базой данных.

Сохраните имя базы данных, имя пользователя и пароль.

### 3. Создание Python App

Откройте интерфейс "Setup Python App" в cPanel и нажмите кнопку "+ Create Application".

Заполните форму следующим образом:

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_4.png
srcDark: /images/shared-hosting/en/django-sample_4.png
alt: Fig 4 | Django sample project
---
::

1. Выберите подходящую для проекта версию Python.
2. Затем необходимо указать корневую директорию проекта, то есть папку, из которой он будет запускаться.
    Мы указали `django.scroll.uz`, поскольку при создании поддомена cPanel автоматически создаёт одноимённую папку.

    Проще говоря:
      - мы создали поддомен `django.scroll.uz`;
      - cPanel создал папку `django.scroll.uz` внутри директории пользователя `/home/scroll/`
3. Здесь выбирается домен, на котором будет работать проект.
4. Для удобства можно сразу указать файл логов. Мы выбрали папку "logs" и файл `django.log`.
5. После заполнения всех полей нажмите кнопку "Create".

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_5.png
srcDark: /images/shared-hosting/en/django-sample_5.png
alt: Fig 5 | Django sample project
---
::

Python App будет создано, и здесь следует обратить внимание на три важных момента:

1. Поля "Application startup file" и "Application Entry point" были заполнены автоматически. Именно поэтому мы не указывали их вручную при создании приложения.
2. Здесь доступны кнопки остановки и перезапуска приложения.
3. В верхней части отображается готовая команда для активации виртуального окружения. Нажмите на неё, чтобы скопировать и сохранить. Она понадобится позже.

### 4. Загрузка проекта на хостинг

Для этого используем интерфейс "File Manager" в cPanel.

::steps{level=5}

  ##### Переходим в папку проекта и нажимаем кнопку "Upload"

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_6.png
  srcDark: /images/shared-hosting/en/django-sample_6.png
  alt: Fig 6 | Django sample project
  ---
  ::

  ##### Нажимаем кнопку "Select File", выбираем архив проекта и загружаем его

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_7.png
  srcDark: /images/shared-hosting/en/django-sample_7.png
  alt: Fig 7 | Django sample project
  ---
  ::

  ##### После завершения загрузки нажимаем ссылку "Go back ..." для возврата в "File Manager"

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_8.png
  srcDark: /images/shared-hosting/en/django-sample_8.png
  alt: Fig 8 | Django sample project
  ---
  ::

  ##### Выделяем загруженный архив, нажимаем кнопку "Extract" и подтверждаем распаковку

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_9.png
  srcDark: /images/shared-hosting/en/django-sample_9.png
  alt: Fig 9 | Django sample project
  ---
  ::

  ##### Чтобы видеть скрытые файлы, нажимаем кнопку "Settings" и включаем функцию "Show Hidden Files"

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_10.png
  srcDark: /images/shared-hosting/en/django-sample_10.png
  alt: Fig 10 | Django sample project
  ---
  ::

  ##### Таким образом проект будет загружен в нужную папку. При желании ZIP-архив можно удалить

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_11.png
  srcDark: /images/shared-hosting/en/django-sample_11.png
  alt: Fig 11 | Django sample project
  ---
  ::

::

### 5. Настройка конфигурации для production

Прежде всего необходимо отредактировать файл `.env`. Для этого нажмите правой кнопкой мыши по файлу и выберите пункт "Edit".

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_12.png
srcDark: /images/shared-hosting/en/django-sample_12.png
alt: Fig 12 | Django sample project
---
::

Файл `.env` мы изменили следующим образом:

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_13.png
srcDark: /images/shared-hosting/en/django-sample_13.png
alt: Fig 13 | Django sample project
---
::

Вам необходимо:
- указать свой домен или поддомен в параметре "ALLOWED_HOSTS";
- указать имя своей базы данных в "DB_NAME";
- указать имя пользователя и пароль базы данных в "DB_USER" и "DB_PASSWORD".

---

Следующий файл, который необходимо настроить, это конфигурационный файл Passenger, созданный для Python App в cPanel.

В нашем проекте папка проекта называется `core`, поэтому для неё уже подготовлен пример файла Passenger под названием `sample__passanger_wsgi.py`.

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_14.png
srcDark: /images/shared-hosting/en/django-sample_14.png
alt: Fig 14 | Django sample project
---
::

Скопируйте содержимое этого файла в `passanger_wsgi.py`.

### 6. Установка библиотек и выполнение миграций

Через интерфейс "Terminal" в cPanel установим все необходимые библиотеки из файла `requirements.txt`.

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_15.png
srcDark: /images/shared-hosting/en/django-sample_15.png
alt: Fig 15 | Django sample project
---
::

Также выполните команду `python3 manage.py migrate` для применения миграций в новой базе данных MySQL и команду `python3 manage.py createsuperuser` для создания администратора.

### 7. Перезапуск приложения

Чтобы все внесённые изменения вступили в силу, необходимо перезапустить Python App. Для этого снова откройте интерфейс "Setup Python App" и нажмите кнопку перезапуска приложения.

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_17.png
srcDark: /images/shared-hosting/en/django-sample_17.png
alt: Fig 17 | Django sample project
---
::

---

На этом процесс загрузки проекта на хостинг завершён. Теперь можно открыть его через специально созданный поддомен и проверить работу.

::color-mode-image
---
srcLight: /images/shared-hosting/en/django-sample_18.png
srcDark: /images/shared-hosting/en/django-sample_18.png
alt: Fig 18 | Django sample project
---
::

## Удаление примерного проекта и очистка хостинга

Теперь вы умеете запускать Django-проекты на хостинге. Поздравляем!

&mdash; Но разве это всё?
&mdash; Нет. Важно не только правильно развернуть проект, но и правильно удалить его и очистить хостинг от связанных файлов.

Причина проста: некоторые наши клиенты сталкивались с различными проблемами из-за неправильного удаления Python App.

### Правильный порядок удаления Python-проекта:

::steps{level=5}

  ##### Сначала необходимо удалить виртуальное окружение

  Откройте интерфейс "Setup Python App" в cPanel и нажмите кнопку "Stop" для приложения.

  Затем нажмите кнопку "Destroy", чтобы полностью удалить его.

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_19.png
  srcDark: /images/shared-hosting/en/django-sample_19.png
  alt: Fig 19 | Django sample project
  ---
  ::

  ##### Следующий шаг — удаление поддомена

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_20.png
  srcDark: /images/shared-hosting/en/django-sample_20.png
  alt: Fig 20 | Django sample project
  ---
  ::

  ##### Удаление Python App и домена не удаляет папку проекта. Поэтому последним шагом удаляем папку проекта через "File Manager"

  ::color-mode-image
  ---
  srcLight: /images/shared-hosting/en/django-sample_21.png
  srcDark: /images/shared-hosting/en/django-sample_21.png
  alt: Fig 21 | Django sample project
  ---
  ::

  ##### Также не забудьте удалить базу данных и созданного для неё пользователя через интерфейс cPanel "Manage My Databases".

::

---

**Source URL:** https://support.hostmaster.uz/ru/shared-hosting/cpanel/example-of-running-a-django-project
