Site icon 8HOST.COM

Установка Django в Ubuntu и Debian

Django – это открытый и свободный веб-фреймворк, написанный на Python, который основан на архитектуре MTV (model template view). Шаблон MTV – это индивидуальный подход Django к шаблону MVC (model–view–controller). Согласно Django Software Foundation, модель является единым источником данных; представление описывает данные, которые передаются пользователю с помощью функции обратного вызова Python; а шаблон – это то, что помогает Django динамически генерировать HTML.

Основными принципами Django являются масштабируемость, повторное использование и быстрая разработка. Слабая связанность Django позволяет компонентам приложений работать независимо друг от друга. Принцип DRY (Don’t repeat yourself) также является неотъемлемой частью Django.

Данный мануал поможет настроить среду разработки Django. Для этого нужно установить Python 3, pip 3, Django и virtualenv.

Требования

Для работы вам понадобится сервер Debian или Ubuntu. Чтобы подготовить свежий сервер, обратитесь к одному из руководств:

1: Установка Python и pip

Чтобы установить Python, нужно сначала обновить локальный репозиторий apt. Флаг –y автоматически отвечает «yes» на все запросы системы. Удалите его, если такое поведение для вас нежелательно.

sudo apt-get update && sudo apt-get -y upgrade

Когда будет предложено настроить grub-pc, можно просто нажать Enter и принять настройки по умолчанию.

Django Software Foundation рекомендует использовать Python 3. Чтобы установить эту версию, введите:

sudo apt-get install python3

Чтобы убедиться, что установка прошла успешно, запросите версию Python:

python3 -V
python 3.5.2

Теперь нужно установить пакетный менеджер pip, чтобы получить возможность устанавливать пакеты из официального репозитория PyPi.

sudo apt-get install -y python3-pip

Чтобы убедиться, что установка прошла успешно, запросите версию pip:

pip3 -V
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

Теперь вы можете быстро установить остальные необходимые пакеты.

2: Установка virtualenv

virtualenv – это виртуальная среда, которая позволяет устанавливать программное обеспечение и пакеты Python в пространстве разработки, изолированном от остальной системы. Такая удобная изоляция предотвращает взаимодействие конфликтующих пакетов или программного обеспечения.

Читайте также: Установка Python 3 и настройка среды разработки на сервере Ubuntu 16.04

Чтобы установить virtualenv, введите:

pip3 install virtualenv

Убедитесь, что установка virtualenv прошла успешно:

virtualenv --version
15.1.0

На этом этапе можно изолировать веб-приложение Django и связанные с ним программные зависимости от других пакетов или проектов Python, которые хранятся в этой системе.

3: Установка Django

Существует три способа установки Django:

  1. С помощью virtualenv. Идеально подходит в случаях, когда нужно полностью изолировать приложение Django от остальной среды.
  2. Из исходного кода. Это позволяет получить последнюю версию Django (или более новую версию, чем в официальном репозитории системы). Обратите внимание: такую версию нужно самостоятельно поддерживать и обновлять, пакетный менеджер за нее не отвечает.
  3. Глобально с помощью pip.

В данном руководстве мы используем третий метод и установим Django глобально.

Для этого нужно просто ввести:

sudo pip3 install django

Запросите версию Django, чтобы убедиться, что установка прошла успешно:

django-admin --version
1.11.3

Теперь можно создать простой тестовый проект.

4: Создание простого проекта Django

Чтобы протестировать работу установки Django, создайте тестовый проект.

Настройка брандмауэра

Для начала нужно разблокировать порт приложения в брандмауэре UFW. Для этого введите команду:

sudo ufw allow 8000

Создание каталога проекта

Затем нужно создать каталог для хранения файлов проекта.

mkdir test_django_app

Перейдите в этот каталог, чтобы начать работу над проектом.

cd test_django_app/

Создание проекта

Теперь можно сгенерировать приложение с помощью django-admin, утилиты командной строки Python. Затем можно создать структуру каталогов для тестового веб-сайта с помощью команды startproject.

В каталоге test-django-app запустите команду:

django-admin startproject testsite

Примечание: Команда django-admin startproject < projectname> создаст одноименный каталог и пакет проекта в каталоге, в котором она была запущена. Параметр <destination> позволяет задать целевой каталог, если команда запускается в другом каталоге.

Теперь можно просмотреть полученные файлы проекта. Перейдите в каталог testsite и просмотрите его содержимое:

cd testsite
ls
manage.py  testsite

Как видите, в каталоге есть файл manage.py и каталог testsite. Файл manage.py работает как django-admin и помещает пакет проекта в sys.path. Также он устанавливает переменную среды DJANGO_SETTINGS_MODULE, которая указывает на файл проекта settings.py.

Просмотрите сценарий manage.py в терминале.

less manage.py

Чтобы закрыть сценарий, просто нажмите q.

Перейдите в каталог testsite, чтобы просмотреть другие файлы проекта.

cd testsite/
ls

Команда выведет такие файлы:

__init__.py  settings.py  urls.py  wsgi.py

Давайте рассмотрим подробнее каждый файл:

Примечание: Файл wsgi.py можно в любой момент настроить в соответствии с потребностями приложения.

Запуск и просмотр проекта

Теперь можно запустить сервер и просмотреть полученный веб-сайт.

Сначала нужно добавить ip-адрес сервера в список ALLOWED_HOSTS в файле settings.py, который находится в ~/test_django_app/testsite/testsite/.

Согласно документации Django, переменная ALLOWED_HOSTS содержит список имен хостов и доменов, которые может обслуживать этот сайт Django. Это мера безопасности, предотвращающая атаки подмены HTTP-заголовков Host.

Откройте файл в текстовом редакторе и добавьте свой адрес.

nano ~/test_django_app/testsite/testsite/settings.py

Найдите раздел Allowed Hosts и добавьте свой IP-адрес в квадратных скобках.

"""
Django settings for testsite project.
Generated by 'django-admin startproject' using Django 1.11.3.
...
"""
...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# Edit the line below with your server IP address
ALLOWED_HOSTS = ['your-server-ip'] ...

Сохраните и закройте файл.

Затем вернитесь в каталог, где находится manage.py:

cd ~/test_django_app/testsite/

Запустите следующую команду:

python3 manage.py runserver your-server-ip:8000

Затем перейдите по этой ссылке, чтобы просмотреть скелет тестового сайта:

http://your-server-ip:8000/

Вы увидите такую страницу:

It Worked!
Congratulations on your first Django-powered page!

Это значит, что установка и настройка фреймворка Django прошла успешно.

Теперь вы можете использовать тестовый проект в качестве шаблона для разработки более сложного сайта.