Поиск по сайту:

Установка и настройка веб-фреймворка Django с виртуальными средами в CentOS/Debian. Часть 1


“Эта статья отредактирована и дополнена последней версией Django – май 2016 г.”

Около 20 лет назад, когда Всемирная паутина еще только зарождалась, иметь личный или корпоративный веб-сайт было почти редкой роскошью. С последующим развитием нескольких веб-технологий и внедрением динамического контента, обеспечиваемого сочетанием серверных программ и баз данных, компании больше не могли довольствоваться наличием статического веб-сайта.

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

Чтобы сделать разработку проще и эффективнее, были разработаны веб-фреймворки, помогающие программистам создавать приложения. Короче говоря, веб-фреймворк заботится об общих основных функциях в процессе разработки, таких как управление сеансами пользователей, взаимодействие с базами данных и хорошая практика отделения бизнес-логики от логики отображения, и это лишь несколько примеров.

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

Установка Django на серверах CentOS и Debian

Хотя вы можете установить Django как из Debian (v1.7.7: расширенная поддержка будет прекращена декабре 2015), так и из Fedora EPEL (v1.6.11: расширенная поддержка была прекращена в репозиториях апреля 2015), доступная версия не является последней стабильной версией LTS (долгосрочная поддержка) (v1.8.13 по состоянию на май 2016 г.).

В этом руководстве мы покажем вам, как установить Django v1.8.13, поскольку его расширенная поддержка гарантирована как минимум до апреля 2018 года.

Рекомендуемый метод установки Django — через pip, популярный инструмент для управления пакетами Python. Кроме того, чтобы создать изолированные среды Python и избежать конфликтов между проектами, для которых могут потребоваться разные версии программных зависимостей, настоятельно рекомендуется использовать виртуальные среды.

Инструменты, используемые для создания виртуальных сред Python и управления ими, называются virtualenv.

Для выполнения установки выполните следующие действия:

1. Для дистрибутивов на основе Fedora (кроме самой Fedora) сначала включите репозиторий EPEL:

yum update && yum install epel-release

2. Установите pip и virtualenv:

Дистрибутивы на базе Fedora:

yum install python-pip python-virtualenv
OR 
dnf install python-pip python-virtualenv
Debian и производные:
aptitude update && aptitude install python-pip virtualenv

3. Создайте каталог для хранения исходного проекта.

mkdir ~/myfirstdjangoenv
cd ~/myfirstdjangoenv

4. Создайте и активируйте виртуальную среду:

virtualenv myfirstdjangoenv

Приведенная выше команда создает группу файлов и подкаталогов в ~/myfirstdjangoenv и по сути устанавливает локальную копию Python и pip в текущем рабочем каталоге. . Далее нам нужно активировать только что созданную виртуальную среду:

source myfirstdjangoenv/bin/activate

5. Обратите внимание, как меняется командная строка после последней команды. Пришло время установить Django:

Обратите внимание, что снимок экрана ниже был сделан в предыдущей версии этого руководства, но ожидаемый результат будет таким же при установке Django 1.8.13. ):


pip install Django==1.8.13

Вы можете проверить версию Django, запустив оболочку Python из текущего рабочего каталога:

python
>>> import django
>>> print(django.get_version())

(Опять же, приведенная выше команда должна возвращать 1.8.13 при проверке текущей версии Django).

Чтобы выйти из командной строки Python, введите:

>>> exit() 

и нажмите Ввод. Далее отключите виртуальную среду:

deactivate

Обратите внимание, что пока виртуальная среда остается деактивированной, Django недоступен:

Как создать первый проект в Django

Чтобы создать проект в созданной нами ранее виртуальной среде, его необходимо активировать:

source myfirstdjangoenv/bin/activate

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

django-admin startproject myfirstdjangoproject

Приведенная выше команда создаст каталог с именем myfirstdjangoproject внутри вашего текущего рабочего каталога.

где вы найдете файл с именем manage.py (утилита, которая поможет вам в дальнейшем управлять вашим проектом) и еще один подкаталог (~/myfirstdjangoenv/myfirstdjangoproject/myfirstdjangoproject). Этот последний подкаталог будет служить контейнером для файлов проекта.

Хотя остальные файлы будут иметь смысл после того, как мы изучим Python и начнем писать настоящее веб-приложение, стоит обратить внимание на ключевые файлы, которые будут найдены внутри каталога контейнера проекта:

  1. myfirstdjangoproject/__init__.py: этот пустой файл сообщает Python, что этот каталог следует считать пакетом Python.
  2. myfirstdjangoproject/settings.py: особые настройки для этого проекта Django.
  3. myfirstdjangoproject/urls.py: оглавление (оглавление) вашего сайта на базе Django.
  4. myfirstdjangoproject/wsgi.py: точка входа для WSGI-совместимых веб-серверов для обслуживания вашего проекта.
ls 
ls -l myfirstdjangoproject
ls -l myfirstdjangoproject/myfirstdjangoproject

Кроме того, Django имеет легкий встроенный веб-сервер (написанный на Python, аналогичный Python SimpleHTTP, а что еще?), который можно использовать для тестирования ваших приложений во время разработки. процесс без необходимости решать задачу настройки веб-сервера на этом конкретном этапе.

Однако нужно знать, что это не подходит для производственной среды — только для разработки. Чтобы запустить вновь созданный проект, измените текущий рабочий каталог на каталог контейнера вашего проекта (~/myfirstdjangoenv/myfirstdjangoproject) и запустите:

python manage.py runserver 0.0.0.0:8000

Если вы столкнулись со следующей ошибкой:

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

Делайте то, что он говорит:

python manage.py migrate

а затем снова запустите сервер:

python manage.py runserver 0.0.0.0:8000

Мы рассмотрим концепцию миграций в следующих статьях этой серии, поэтому вы можете пока игнорировать сообщение об ошибке.

В любом случае вы можете изменить порт по умолчанию, который будет прослушивать встроенный веб-сервер. Используя 0.0.0.0 в качестве сетевого интерфейса для прослушивания, мы разрешаем другим компьютерам в той же сети доступ к пользовательскому интерфейсу проекта (если вместо этого вы используете 127.0.0.1, вы сможете получить доступ к пользовательскому интерфейсу только с локального хоста).

Вы также можете изменить порт на другой по вашему выбору, но вам также необходимо убедиться, что трафик через этот порт разрешен через ваш брандмауэр:

firewall-cmd --add-port=8000/tcp
firewall-cmd --permanent --add-port=8000/tcp

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

Вы должны увидеть следующий вывод в своем терминале:

python manage.py runserver 0.0.0.0:8000

На этом этапе вы можете открыть свой любимый веб-браузер и перейти к IP-адресу компьютера, на котором вы установили Django, а затем к номеру порта. В моем случае это компьютер Debian Jessie с IP 192.168.0.25 и прослушивающим порт 8000:

http://192.168.0.25:8000

Хорошо, что нам удалось завершить первоначальную настройку проекта, но, как указано в сообщении выше, предстоит еще много работы.

Краткое содержание

В этом руководстве мы объяснили, как установить и настроить виртуальную среду для Django, универсальной веб-платформы с открытым исходным кодом, основанной на Python.

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

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

Как всегда, не стесняйтесь, напишите нам, если у вас есть вопросы по этой статье или предложения по улучшению. Мы с нетерпением ждем вашего ответа!