Как установить django на debian

Обновлено: 04.07.2024

Устанавливалось на Debian 6.0.6, в репозиториях был только Python 2.6.6. Не стал заморачиваться на Python 2.7. Хотя рекомендуется обновить до 2.7.3 или выше. Также Django 1.5 поддерживает Python 3, особенно 3.2 и выше. Предполагается, что работы ведем под учетной записью суперпользователя.

Предварительно требуется установить систему контроля версий git:

Установка и настройка PostgreSQL:

Сразу после установки запускается. В данном случае установилась версия 8.4.

tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 16394/postgres

Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n

Задаем пароль пользователю:

psql (8.4.13)
Type "help" for help.

Задаем пароль суперпользователю баз данных:

Создаем базу данных для пользователя username:

createdb: could not connect to database postgres: FATAL: no pg_hba.conf entry for host "10.78.89.142", user "postgres", database "postgres", SSL on
FATAL: no pg_hba.conf entry for host "10.78.89.142", user "postgres", database "postgres", SSL off

Выходим на уровень пользователя root, правим конфиг и рестартим сервис:

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

Далее снова заходим под пользователя postgres и повторяем создание базы данных:

Если спросит пароль, то используется пароль для суперпользователя postgres.

Если вы установили более новую версию PostgreSQL, к примеру, 9.1, то описанной выше проблемы быть не должно.

Пробуем подключиться к базе:

Password for user podvesnoy:

psql (8.4.13)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

Все, с базой данных разобрались.

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

Создаем директорию под сайт, устанавливаем права:

Скачиваем движок и устанавливаем его:

Для запуска Django как FastCGI-сервера понадобится flup:

Создаем новый проект:

Запускаем FastCGI сервер:

tcp 0 0 127.0.0.1:3033 0.0.0.0:* LISTEN 15748/python

Установка и настройка nginx:

Из стандартных репов установился 0.7.67-3 что не густо, конечно.

Создаем конфиг виртуального хоста:

После чего делаем symlink и включаем конфиг для нового виртуального хоста, создаем папку с логами и выставляем ей нужного владельца (www-data), после чего перезагружаем nginx:

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

“It worked! Congratulations on your first Django-powered page.”

Настраиваем подключение к базе данных:

Затем создаем таблицы в базе:

По ходу предложит создать суперпользователя. Имя пользователя - admin, пароль - adminpass или любой другой.

Необходимо в файле /var/www/django/djangoproject/djangoproject/settings.py прописать путь до диектории со статикой:

Собираем статику в эту директорию с помощью команды:

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

Для облегчения разработки добавляем в cron команду на регулярное убивание FastCGI сервера и его запуск. На стадии продакшена нужно будет убрать.

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

Итак, с помощью вашего любимого текстового редактора создаем файл в директории /usr/local/bin с удобным вам названием, к примеру, pdev, примерно следующего содержания:

Далее, делаем симлинк файла pdev из директории /usr/local/bin в /usr/bin:

Таким образом перезапуск FastCGI-сервера Django можно будет осуществлять одной командой.

Добавляем в cron:

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

Кстати, так как Ubuntu основан на Debian, то всё описанное выше будет работать и под Ubuntu, только вы получите более современные версии PostgreSQL и Nginx.

Если будут вопросы или дополнения (например, про статику в сервере для разработки), то вы можете оставить их в комментариях ниже.

Основными принципами 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 в пространстве разработки, изолированном от остальной системы. Такая удобная изоляция предотвращает взаимодействие конфликтующих пакетов или программного обеспечения.

Чтобы установить 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

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

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

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

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

Теперь можно сгенерировать приложение с помощью 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 в терминале.

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

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

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

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

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

  • __init__.py работает как точка входа в проект Python.
  • settings.py содержит настройки установки Django.
  • urls.py содержит список urlpatterns, который обрабатывает URL-адреса и связывает их с видами.
  • wsgi.py содержит настройки WSGI (Web Server Gateway Interface), стандарта платформы Python для развертывания веб-серверов и приложений.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • использование концепции Модель-Представление-Контроллер (Model-View-Controller, MVC). В терминологии Django это будет Модель-Шаблон-Вид (Model-Template-View, MTV)
  • использование концепции приложений. Весь код рекомендуется оформлять в виде приложений и делать его подключаемым и переносимым
  • диспетчер URL на основе регулярных выражений
  • ORM для работы с БД (с поддержкой транзакций)
  • встроенный веб-сервер для разработки
  • встроенная административная панель

Django можно установить двумя способами: из репозитариев или скачав исходники фреймворка с сайта. Как правило, в репозитариях находится не самая свежая версия. Поэтому, обычно используется второй способ, хотя это и не Debian-way.

Установка Django из репозитория

Пакет Django находится в стандартном репозитории, поэтому ничего нового подключать не надо. Для установки необходимо выполнить следующее:

Установка последней стабильной версии Django

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

Далее, необходимо узнать, в какую директорию необходимо устанавливать пакеты, чтобы Python узнал об этом. Для этого необходимо выполнить:

В данном случае, видно что основной версией является Python 2.5 и все дополнительные пакеты устанавливаются в директорию "/usr/lib/python2.5/site-packages".

Следующим шагом необходимо создать символическую связь для распакованной директории Django:

И в конце, чтобы сделать команду django-admin.py доступной из любой директории системы, необходимо добавить еще одну символическую ссылку:

Проверка корректности установки Django

Чтобы убедиться, что Django нормально установлен, необходимо запустить интерпретатор Python и импортировать модуль django:

Все в порядке. Последняя версия Django корректно установлена.

Установка Apache и mod_wsgi тривиальна:

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

При установке необходимо будет указать пароль для root-пользователя БД MySQL.

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

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

Далее приведен код создание Django-проекта и некоторых дополнительных директорий в нем:

Создание пользователя для проекта

Для того, чтобы изолировать код проекта от остальной системы (в целях безопасности), необходимо добавить в систему пользователя, от имени которого будет исполняться код проекта:

Настройка виртуального хоста в Apache

Далее, чтобы код проекта отзывался на какой-либо URL-адрес, необходимо настроить виртуальный хост Apache. Необходимо создать новый файл:

И добавить в него следующий код:

В данном случае 10.1.0.4 - это IP-адрес машины, на которой работает Apache.

Настройка wsgi

Теперь, когда виртуальный хост создан, необходимо создать wsgi-обработчик. Для этого создается файл:

В файл добавляется следующий код:

Включение виртуального хоста Apache

На заключительном шаге необходимо дать знать о наличии нового виртуального хоста в Apache, включить его и перезагрузить сам Apache:

Проверка корректности установки

Чтобы проверить, что Django корректно работает через mod_wsgi необходимо попытаться открыть URL "http://wsgi.debianworld.ru/" в браузере.

Результатом должно быть приглашение:

Создание БД/пользователя в MySQL, настройка Django

После того, как есть уверенность, что Django установлен и работает, необходимо обеспечить возможность работы с БД. Для этого необходимо залогиниться в MySQL под root'ом:

И создать новую базу данных и нового пользователя:

После того, как новые БД и пользователь готовы, необходимо прописать их в конфиг Django. Для этого необходимо открыть файл настроек:

И прописать следующие значения:

Кроме того, чтобы правильно "подхватились" статические файлы django-админки и основго проекта, необходимо так же прописать:

И в заключении, необходимо дать команду Django создать в БД основные таблицы:

Вот и все. Теперь Django настроено полностью. Далее можно создавать приложения слдеующей командой:

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

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

Дело в том, что по ходу руководства мы всё равно будем рассматривать все эти вещи, а текущий раздел является дополнительным, где мы просто собрали инструкции по установке вместе (это используется в некоторых форматах мастер-классов). Ты можешь установить все сразу, воспользовавшись инструкцией ниже. Но можешь пропустить этот раздел, приступив к изучению основного материала, где детали установки мы объясним по мере необходимости.

Если ты находишься на одном из мероприятий Django Girls:

  • Эта страница для тебя, если ты находишься на встрече Django Girls "вечер настроек" перед основным семинаром! Следуй инструкции ниже, а если возникнут трудности, попроси наставника помочь. На основном мастер-классе ты можешь пропускать инструкции по установке, с которыми столкнёшься.
  • Возможно, организаторы мастер-класса, в котором ты будешь участвовать, попросили установить всё необходимое перед событием. Если это так, то эта страница для тебя! Следуй инструкции ниже. Если что-то самостоятельно выполнить не получилось, ничего страшного, на мероприятии ты можешь воспользоваться помощью наставника.
  • Если мастер-класс, участницей которого ты являешься, не организует встречу "вечер настроек" (или ты не смогла присутствовать), и организаторы не попросили тебя попытаться установить все до начала мероприятия, пропусти этот раздел и переходи к главе Как работает интернет. Не переживай, ты установишь все необходимое во время прохождения руководства на самом мастер-классе.

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

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

Облачная IDE (PaizaCloud Cloud IDE, AWS Cloud9)

Облачная IDE — это инструмент, который предоставляет тебе редактор кода и доступ к компьютеру, запущенному в интернете. На этом удалённом компьютере ты можешь устанавливать, создавать и запускать программы. На время прохождения этого руководства облачная IDE будет вести себя как локальный компьютер. Ты будешь так же, как и другие участницы с OS X, Ubuntu или Windows, выполнять команды в командной строке, но она будет подключена к компьютеру облачной IDE, который находится где-то в другом месте.

Ниже ты увидишь инструкции для настройки облачных IDE (PaizaCloud Cloud IDE, AWS Cloud9). Ты можешь выбрать одну из них и выполнить соответствующие действия.

PaizaCloud Cloud IDE

  1. Перейди на сайт PaizaCloud Cloud IDE
  2. Войди в свой аккаунт
  3. Нажми New Server
  4. Нажми кнопку Terminal (в левой части окна)

Теперь ты должна увидеть интерфейс с боковой панелью, кнопки расположены слева. Нажми кнопку "Terminal", чтобы открыть командную строку. Ты увидишь приглашение командной строки:

Командная строка в PaizaCloud Cloud IDE готова к твоим командам. Ты можешь изменить размер этого окна, чтобы сделать его немного больше.

AWS Cloud9

  1. Перейди на сайт AWS Cloud9
  2. Войди в свой аккаунт
  3. Нажми Create Environment

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

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

Виртуальное окружение

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

В твоей командной строке в нижней части интерфейса Cloud 9 запусти следующие команды:

Если они не сработают, попроси своего тренера помочь.

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

GitHub

Создай аккаунт на GitHub.

PythonAnywhere

Руководство Django Girls включает в себя раздел «Публикация». Этим словом описывается процесс, когда ты переносишь код, запускающий твоё новое веб-приложение, на публично доступный компьютер (он называется сервер), чтобы другие люди могли видеть результаты твоей работы.

Если ты проходишь это руководство на Chromebook, этап публикации может выглядеть немного нетипично, так как для разработки мы уже используем удалённый компьютер где-то в интернете (а, например, не мощности своего ноутбука). Тем не менее, будет полезно пройти раздел «Публикация», ведь мы можем рассматривать наше рабочее пространство в Cloud9 или PaizaCloud как место для незавершенной работы, а PythonAnywhere как место для демонстрации законченных дел.

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

В зависимости от твоей версии Windows и того, какая у тебя клавиатура, одно из следующих действий откроет окно командной строки (возможно, придётся немного поэкспериментировать, но все варианты пробовать необязательно):

  • Перейди в меню Пуск (или на экран Пуск), в строке поиска набери "Командная строка".
  • Перейди в меню Пуск → Windows → Командная строка.
  • Перейди в меню Пуск → Все программы → Служебные → Командная строка.
  • Перейди на экран Пуск, наведи мышь на нижний левый угол экрана и нажми на стрелочку вниз, которая появится там. (Если у тебя тачскрин, листни пальцем снизу вверх.) Откроется страница "Приложения". Выбери пункт "Командная строка" в разделе "Windows".
  • Удерживая клавишу Windows на клавиатуре, нажми X. В появившемся меню выбери пункт "Командная строка".
  • Удерживая клавишу Windows, нажми R, чтобы появилось окно "Выполнить". Набери в строке cmd и нажми OK.

Type "cmd" in the "Run" window

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

Перейди в Приложения → Прочие → Терминал.

Вероятно, командная строка скрывается по адресу: Приложения → Стандартные → Терминал или Приложения → Система → Терминал, но это может зависеть от конкретной системы. Если не сможешь найти — Google поможет :)

Django написан на Python. Нам нужен Python, чтобы сделать что-нибудь в Django. Давай начнем с его установки! Мы хотим, чтобы ты установила самую свежую версию Python 3, поэтому, если у тебя уже есть более ранняя версия, то её придется обновить. Если у тебя уже установлена версия 3.4 или более высокая, она должна подойти.

Для начала проверь, какая версия Windows у тебя на компьютере — 32-битная или 64-битная. Это будет указано в строке «Тип системы» на странице «Сведения о системе». Чтобы попасть туда, попробуй один из этих способов:

  • Нажми одновременно клавиши Windows и Pause/Break
  • Открой панель управления из меню Windows, оттуда перейди в «Система и безопасность», затем в «Система»
  • Нажми клавишу Windows, затем перейди по разделам Настройки > Система > О системе

Обрати внимание на экран мастера установки, который называется «Setup» (Настройка): тебе нужно пролистать его вниз и выбрать опцию «Add Python 3.6 to the PATH» (Добавить Python 3.6 к системной переменной PATH), как на рисунке (это может выглядеть по-разному в зависимости от версии, которую ты устанавливаешь):

Не забудь добавить Python в системную переменную Path

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

  1. либо установить все доступные обновления Windows и попробовать установить Python 3.6 заново;
  2. либо установить более раннюю версию Python, например, 3.4.6.

Если тебе пришлось установить раннюю версию Python, экран установки может выглядеть чуть иначе, чем показано выше. Не забудь прокрутить окно до строки «Add python.exe to Path», затем нажми кнопку слева от неё и выбери пункт «Will be installed on local hard drive»:

Добавление Python в переменную Path, ранние версии

Примечание: перед установкой Python в OS X тебе нужно проверить, что в настройках твоего Mac разрешено устанавливать пакеты, загруженные не из App Store. Перейди в Системные настройки (в папке «Программы»), нажми «Защита и безопасность» и выбери вкладку «Общие». Если в разделе «Разрешать загрузки из:» выбран вариант «App Store для Mac», смени его на «App Store для Mac и от установленных разработчиков».

  • Скачай файл Mac OS X 64-bit/32-bit installer,
  • Сделай двойной щелчок на python-3.6.1-macosx10.6.pkg для запуска установщика.

Вполне вероятно, что у тебя уже установлен Python. Чтобы проверить это (а также версию языка), открой консоль и введи следующую команду:

Если у тебя установлена другая версия Python, не меньше чем 3.4.0 (например, 3.6.0), то нет необходимости обновляться. Если Python не установлен, или ты хочешь использовать другую версию языка, то можешь установить его следующим образом:

Читайте также: