Установка Django 2.0.5 на Ubuntu 18.04 — пошаговое руководство
Почему это руководство
Django — это фреймворк для веб-приложений на языке Python, который ускоряет создание стабильных и безопасных сервисов. Здесь вы получите практическую последовательность команд и проверенные рекомендации для локальной разработки и простого развёртывания на сервере.
Краткое содержание
- Требования и подготовка системы
- Настройка Python 3 как системного python
- Три метода установки Django: pip, virtualenv, из Git
- Создание первого проекта, запуск и администрирование
- Практические советы по безопасности, отладке и развёртыванию
- Чек-листы для ролей и тесты приёмки
Предпосылки
- Ubuntu 18.04 64-bit
- Доступ root или пользователь с sudo
- Базовые навыки работы в терминале
Что нужно знать заранее
- Django упрощает работу с базами, маршрутами и шаблонами. Определение: virtualenv — инструмент для создания изолированных окружений Python.
Шаг 1 — Настройка Python 3 на Ubuntu 18.04
По умолчанию на многих системах Ubuntu может присутствовать python2.7 и python3. В этом руководстве будем использовать python3 как системный python, чтобы команды и пакеты запускались ожидаемо.
Проверьте текущую версию python:
python --versionЕсли система указывает на python 2.7, можно переключить альтернативы на python3 командой:
update-alternatives --install /usr/bin/python python /usr/bin/python3 1Проверьте снова:
python --versionТеперь по умолчанию будет возвращаться python 3.x, обычно 3.6 на Ubuntu 18.04.
Важно: в свежих установках Ubuntu команда ‘python’ может отсутствовать, а используется ‘python3’. Если вы не хотите менять системный бинари, используйте явно ‘python3’ и ‘pip3’.
Шаг 2 — Установка Django
Ниже перечислены три способа установки. Выберите только один для конкретного окружения: глобальная установка для всех пользователей, установка в изолированном virtualenv для проектов или установка из исходников для разработки фреймворка.
2.1 Установка Django через pip (быстро, глобально для пользователя)
pip — менеджер пакетов Python, который использует репозиторий PyPI. Для начала установим pip для Python 3:
sudo apt install python3-pip -yПосле установки появится бинарник pip3. Для удобства можно создать символьную ссылку pip -> pip3:
which pip3
ln -s /usr/bin/pip3 /usr/bin/pipПроверьте версию pip:
pip --version
Установим Django 2.0.5 конкретной версией:
pip install Django==2.0.5Примечание: указывая версию, вы получаете воспроизводимую среду. Если нужна последняя ветка 2.x, можно установить Django==2.* или без указания версии для получения последней доступной версии.
Если возникает ошибка с локалью — настройте её:
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure localesПроверьте установку:
django-admin --versionИли через Python:
python
import django
print(django.get_version())
Когда использовать этот подход
- На тестовой виртуальной машине, где глобальные пакеты допустимы.
- Для быстрой проверки совместимости или запуска демо.
Ограничения
- Глобальная установка может привести к конфликтам между проектами.
- Рекомендуется избегать для продакшна.
2.2 Установка Django внутри virtualenv (рекомендовано для разработки)
virtualenv помогает создать изолированное окружение Python, где можно фиксировать версии пакетов для каждого проекта.
Установим virtualenv через pip:
pip install virtualenvСоздадим окружение ‘env01’ с python3:
virtualenv --python=python3 env01Активируем окружение:
cd env01/
source bin/activateТеперь в активном окружении установим Django:
pip install django==2.0.5Проверим:
django-admin --version
Когда использовать virtualenv
- Для разработки нескольких проектов с разными зависимостями.
- Для контроля версий пакетов и совместимости.
Альтернатива: venv (встроенный модуль в Python 3), pipenv и poetry предлагают продвинутую работу с зависимостями и управлением окружений.
2.3 Установка Django из Git репозитория (разработка фреймворка)
Если вы планируете править код Django или использовать девелоперскую ветку, удобнее установить пакет из локальной копии репозитория.
Установим git:
sudo apt install git -yСоздадим виртуальное окружение ‘git01’:
virtualenv --python=python git01
cd git01/
source bin/activateКлонируем репозиторий Django и установим в editable режиме:
git clone git://github.com/django/django django-dev
pip install -e django-devФлаг -e устанавливает пакет в режиме разработки — изменения в исходниках будут сразу видны при импорте.
Проверьте версию:
django-admin --version
Когда использовать этот подход
- Вы хотите внести вклад в код Django.
- Нужно тестировать последние изменения без выпуска релиза.
Шаг 3 — Создание первого проекта на Django
В этом разделе приведены шаги для создания проекта внутри virtualenv, запуска сервера разработки и настройки административной учётной записи.
Создадим окружение ‘django01’ и активируем его:
virtualenv --python=python django01
cd django01/
source bin/activateУстановим Django 2.0.5:
pip install Django==2.0.5
Создадим проект ‘project01’:
django-admin startproject project01Перейдём в каталог проекта и посмотрим структуру:
cd project01/
tree
Откройте файл settings.py для редактирования и задайте ALLOWED_HOSTS с IP сервера (или доменом):
vim project01/settings.pyНайдите строку ALLOWED_HOSTS и измените на вашу машину:
ALLOWED_HOSTS = ['192.168.10.100']Сохраните и закройте файл.
Запустим встроенный сервер разработки на конкретном IP и порте:
python manage.py runserver 192.168.10.100:8000Откройте браузер на http://192.168.10.100:8000/ чтобы увидеть стартовую страницу Django.

Примечание: встроенный сервер предназначен только для разработки. Для публичного доступа используйте WSGI-серверы (gunicorn, uWSGI) и обратный прокси nginx.
Миграции и создание суперпользователя
Перед тем как использовать админку, примените миграции:
python manage.py migrateПояснение: migrate синхронизирует модели с базой данных, создавая таблицы и необходимые структуры. По умолчанию Django использует sqlite3 как локальную БД.
Создайте суперпользователя:
python manage.py createsuperuserПример ввода:
Username (leave blank to use 'root'): hakase
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.Запустите сервер и перейдите в админку: http://192.168.10.100:8000/admin/


Практические рекомендации по безопасности и развёртыванию
Важно помнить, что инструкции выше ориентированы на разработку. Для продакшна минимальный набор действий:
- Никогда не используйте встроенный runserver в продакшне.
- Храните SECRET_KEY вне репозитория, например в переменных окружения или в защищённом хранилище.
- Настройте DEBUG = False в settings.py для продакшна.
- Настройте ALLOWED_HOSTS с точными доменами/IP.
- Используйте HTTPS и конфигурацию TLS на уровне nginx/обратного прокси.
- Логи и ротация — настраивайте системные логи и храните их централизованно.
- Разграничивайте права на файловой системе, особенно для папок со статикой и медиа.
Совет по базе данных
- На этапе продакшна используйте PostgreSQL или другую реляционную СУБД вместо sqlite3 для отказоустойчивости.
- Разверните бэкапы и проверяйте процедуру восстановления.
Безопасность приложений
- Используйте встроенные защиты Django: CSRF токены, escaping шаблонов (XSS), ORM-методы (защита от SQL Injection).
- Подпишите и ограничьте доступ к административным страницам по IP или через VPN.
Отладка и типичные проблемы
- Проблемы с локалью — см. раздел выше с locale-gen.
- Ошибка импорта Django в виртуальном окружении — проверьте, что окружение активировано (source bin/activate)
- Конфликты версий пакетов — используйте requirements.txt или Pipfile для фиксации зависимостей.
Команды для отладки версий и окружения:
which python
which pip
pip freezeПроверьте, что путь указывает на ваш виртуальный env01/bin/python, а не на системный.
Чек-листы по ролям
Чек-лист для разработчика
- Создать виртуальное окружение для проекта
- Зафиксировать зависимости в requirements.txt
- Не хранить SECRET_KEY в репозитории
- Проверить работу миграций на dev
- Написать базовые тесты и прогоны CI
Чек-лист для администратора
- Настроить систему логирования и мониторинга
- Настроить gunicorn+nginx или uWSGI+nginx
- Настроить бэкап базы данных
- Настроить HTTPS и HSTS
- Настроить ротацию логов
Миниметодика развёртывания на продакшн (высокоуровневая)
- Подготовить сервер: обновить ОС, установить зависимости (python3, pip, git, nginx)
- Создать системного пользователя для развертывания
- Настроить virtualenv и установить зависимости из requirements.txt
- Настроить WSGI-сервер (gunicorn), systemd unit для автозапуска
- Настроить nginx как обратный прокси, SSL, CORS/Headers
- Выполнить миграции и собрать статические файлы
- Проверить доступность, журнал ошибок, нагрузку
Тесты приёмки и критерии приёмки
Критерии приёмки
- Сервер запускается и отвечает на HTTP-запросы на / с 200 OK
- Админка доступна по /admin/ и возможен вход под созданным суперпользователем
- Миграции применяются без ошибок
- Статические файлы собираются и отдаются nginx
Примеры тест-кейсов
- Шаги: активировать виртуальное окружение, запустить migrate, создать суперпользователя, запустить runserver, перейти в корень сайта → ожидаемый результат 200 OK
- Негативный кейс: при отключённом окружении импорт django должен выдавать ошибку ImportError
Когда этот подход не подходит
- Нужна высокая масштабируемость: используйте контейнеры (Docker/Kubernetes) и разделение сервисов
- Если требуется строгая совместимость с новыми фичами Django, используйте проверенные LTS-релизы и тесты миграций
Альтернативы и расширения
- Pipenv или poetry для управления зависимостями и виртуальными окружениями
- Docker для изолированного и воспроизводимого развёртывания
- Использование CI/CD для автоматического тестирования и развёртывания
Короткая галерея ошибочных сценариев и решения
- Ошибка ‘no module named django’ — активировать virtualenv или установить django в текущее окружение
- Ошибка при запуске runserver на публичном IP — убедиться, что в ALLOWED_HOSTS указан нужный IP/домен
- Проблемы с permission denied при работе со статикой — проверить права на папки и владельца процесса
Совместимость и миграция версий
- Django 2.x ориентирован на Python 3 и не поддерживает Python 2
- Для обновления между минорными версиями всегда читайте release notes и тестируйте миграции на staging до релиза в prod
Небольшая сводка по безопасности и GDPR (если вы храните пользовательские данные)
- Обеспечьте шифрование пересылаемых данных (TLS)
- Ограничьте доступ к административной панели
- Храните логи и данные с учётом локальных требований к защите персональных данных
- Предусмотрите процедуру удаления и анонимизации данных при запросах пользователей
Краткая памятка команд
sudo apt install python3-pip -y
pip install virtualenv
virtualenv --python=python3 env01
source env01/bin/activate
pip install Django==2.0.5
django-admin startproject project01
cd project01
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 192.168.10.100:8000Итог
Django предоставляет быстрый и безопасный путь для создания веб-приложений на Python. В этом руководстве вы узнали три основных способа установки Django 2.0.5 на Ubuntu 18.04, создали первый проект, настроили админку и получили набор практических рекомендаций для перехода от разработки к продакшну.
Важно: для продакшна используйте изолированные окружения, надёжное хранение секретов и проверенные WSGI-компоненты. Тестируйте миграции и автоматизируйте развёртывание через CI/CD.
Полезные ссылки
- Документация Django — официальный источник по API и практикам
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента