Содержание
Установка Django с PostgreSQL, Nginx и Gunicorn на Ubuntu 18.04
В инструкции описано, как установить и настроить некоторые компоненты в Ubuntu 18.04 для поддержки и обслуживания приложений Django, как настроить базу данных PostgreSQL вместо использования базы данных SQLite по умолчанию, как настроить сервер приложений Gunicorn для взаимодействия с приложениями. Затем в инструкции описана конфигурация Nginx для обращения прокси к Gunicorn.
Что такое Django?
Django — это мощный фреймворк, который позволяет запустить приложение или веб-сайт на Python. Django включает в себя упрощенный сервер разработки для локального тестирования кода.
Загрузка и установка пакетов
Для начала обновите локальную базу пакетов:
sudo apt update
sudo apt upgrade
Примечание: по умолчанию на серверах Ubuntu 18.04 используется Python 3.
Для установки необходимого набора пакетов и зависимостей выполните следующую команду:
sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl
В результате у вас будут установлены средства разработки Python, необходимые для сборки Gunicorn, pip, система баз данных Postgres и библиотеки, необходимые для взаимодействия с ней, а также веб-сервер Nginx.
Создание базы данных и пользователя PostgreSQL
Во время установки Postgres был создан пользователь с именем postgres — администратор СУБД PostgreSQL. Более подробно про работу с PostgreSQL можно ознакомиться в нашей инструкции.
Подключитесь к СУБД с помощью следующей команды:
sudo -u postgres psql
Создайте базу данных для вашего проекта:
CREATE DATABASE cloudproject;
Далее создайте пользователя для созданной БД, указав безопасный пароль:
CREATE USER clouduser WITH PASSWORD 'password';
Для корректной работы Django кодировку необходимо установить в стандарт UTF-8:
ALTER ROLE clouduser SET client_encoding TO 'utf8';
Далее установите схему изоляции транзакции по умолчанию в «зафиксированное чтение», при котором блокируется чтение из незафиксированных транзакций:
ALTER ROLE clouduser SET default_transaction_isolation TO 'read committed';
Установите рекомендуемый стандарт времени UTC:
ALTER ROLE clouduser SET timezone TO 'UTC';
В конце предоставьте новому пользователю доступ для управления созданной базой данных:
GRANT ALL PRIVILEGES ON DATABASE cloudproject TO clouduser;
Выйдите из командной строки PostgreSQL, набрав:
\q
Создание виртуальной среды Python для проекта
Сначала необходимо настроить доступ к команде virtualenv, которую можно установить с помощью pip:
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
Флаг -H гарантирует, что политика безопасности устанавливает переменные окружения в домашний каталог целевого пользователя.
Создайте и перейдите в каталог, где вы собираетесь хранить файлы вашего проекта. В нашем примере используется название каталога 1cloud:
mkdir ~/cloudproject
cd ~/cloudproject
В каталоге проекта создайте виртуальную среду Python. Выберете название среды, которое имеет отношение к вашему проекту, в нашем примере мы используем название cloudenv:
virtualenv cloudenv
В результате этих действий будет создано откружение в вашем каталоге, внутри будет установлена локальная версия Python и локальная версия pip. Это позволяет настроить изолированную среду Python для Jupyter.
Перед установкой Jupyter нам нужно активировать виртуальную среду, указав вместо 1cloud название вашей среды:
source cloudenv/bin/activate
Когда виртуальная среда активирована, установите Django, Gunicorn и адаптер psycopg2 PostgreSQL с помощью локального экземпляра pip:
pip install django gunicorn psycopg2-binary
Создание и настройка проекта Django
СОЗДАНИЕ ПРОЕКТА
Создадим проект в настроенной виртуальной среде, явно задав название проекта и путь:
django-admin. py startproject cloudproject ~/cloudproject
НАСТРОЙКА ПАРАМЕТРОВ ПРОЕКТА
Для запуска созданного проекта необходимо настроить его параметры. Откройте файл настроек в текстовом редакторе, например nano:
nano ~/cloudproject/cloudproject/settings.py
Найдите директиву ALLOWED_HOSTS и в качестве ее значения укажите IP-адрес или доменное имя сервера:
ALLOWED_HOSTS = ['your_server_domain_or_IP']
Например:
ALLOWED_HOSTS = ['111.111.111.111']
Затем найдите раздел, который настраивает доступ к базе данных. Он начинается с ключевого слова DATABASES. Укажите собственные значения переменных NAME,USER,PASSWORD ранее созданных в PostgreSQL:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'cloudproject',
'USER': 'clouduser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
Затем переместитесь в конец файла и добавьте параметр, указывающий, где должны быть размещены статические файлы. Это необходимо для того, чтобы Nginx мог правильно обрабатывать запросы к этим элементам:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
ЗАВЕРШЕНИЕ НАЧАЛЬНОЙ НАСТРОЙКИ ПРОЕКТА
Перенесите исходную схему базы данных в базу данных PostgreSQL, используя скрипт управления:
~/cloudproject/manage.py makemigrations
~/cloudproject/manage.py migrate
Создайте административного пользователя для проекта, набрав:
~/cloudproject/manage.py createsuperuser
На этом шаге будет необходимо выбрать имя пользователя проекта, указать адрес электронной почты, а также выбрать и подтвердить пароль.
Соберите весь статический контент в каталог, который был настроен:
~/cloudproject/manage.py collectstatic
С помощью ufw откройте порт 8000 на котором по умолчанию будет запущен Django:
sudo ufw allow 8000
Наконец, вы можете протестировать проект, запустив сервер Django с помощью этой команды:
~/cloudproject/manage. py runserver 0.0.0.0:8000
В любом удобном веб-браузере перейдите на ваше доменное имя или IP-адрес с указанием порта 8000:
http://server_domain_or_IP:8000
Например:
http://111.111.111.111:8000
Тестирование работы Gunicorn
Перед тем, как покинуть виртуальную среду, необходимо протестировать Gunicorn, чтобы убедиться, что программа может обслуживать приложение. Это можно сделать, перейдя в каталог проекта и используя gunicorn для загрузки модуля WSGI:
cd ~/cloudproject
gunicorn --bind 0.0.0.0:8000 cloudproject.wsgi
В результате Gunicorn будет запущен на том же интерфейсе, на котором работал сервер разработки Django. Вы можете вернуться в браузер и снова протестировать приложение.
Теперь настройка приложения Django завершена. Необходимо выйти из виртуальной среды, набрав:
deactivate
Создание systemd Socket и Service Files для Gunicorn
Проверка показала, что Gunicorn может взаимодействовать с приложением Django, но необходимо реализовать более надежный способ запуска и остановки сервера приложений. Для этого нужно использовать файл службы systemd.
Создайте и откройте служебный файл systemd для Gunicorn в текстовом редакторе, например nano:
sudo nano /etc/systemd/system/gunicorn.service
Вставьте следующие строки:
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/root/cloudproject
ExecStart=/root/cloudproject/cloudenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/root/myproject/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
Раздел [Unit] используется для указания метаданных и зависимостей. Здесь находится описание сервиса и информация для системы инициализации. В разделе [Service] определяется пользователь и группа, от имени которых необходимо выполнять работу. Группа www-data используется не случайно, чтобы Nginx мог легко общаться с Gunicorn. Затем в WorkingDirectory указывается рабочий каталог и в ExecStart команда для запуска сервиса. Наконец, раздел [Install] указывает, чтобы служба стартовала, когда обычная многопользовательская система запущена:
Теперь можно запустить созданную службу Gunicorn и включить ее так, чтобы она запускалась при загрузке:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
Проверка Gunicorn Socket File
Для начала необходимо проверить состояние процесса, чтобы узнать, удалось ли его запустить:
sudo systemctl status gunicorn
Затем проверьте наличие файла cloudproject.sock в каталоге вашего проекта:
ls /root/cloudproject
Output: manage.py cloudproject cloudenv cloudproject.sock static
Если вы не нашли файл cloudproject.sock в каталоге, это означает, что Gunicorn не смог правильно запуститься. Проверьте журналы процесса Gunicorn, набрав:
sudo journalctl -u gunicorn
Настройка Nginx
Теперь, когда Gunicorn настроен, нужно настроить Nginx для передачи трафика процессу. Создайте и откройте новый файл в каталоге сайтов Nginx:
sudo nano /etc/nginx/sites-available/cloudproject
Внутри создайте блок сервера, вставив следующие строки:
server {
listen 80;
server_name ;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /root/cloudproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/root/cloudproject/cloudproject.sock;
}
}
В блоке указано, что nginx должен прослушивать порт 80 и отвечать на доменное имя или IP-адрес сервера. Далее указано игнорировать любые проблемы с поиском значка и путь до статических ресурсов. Последний блок location / {} соответствует всем другим запросам.
Сохраните и закройте файл после внесения изменений. Теперь мы можем включить файл, связав его с каталогом сайтов:
sudo ln -s /etc/nginx/sites-available/cloudproject /etc/nginx/sites-enabled
Далее необходимо проверить конфигурацию Nginx на наличие синтаксических ошибок, набрав:
sudo nginx -t
Если ошибки не найдены, перезапустите Nginx, набрав:
sudo systemctl restart nginx
Наконец, нужно открыть брандмауэр для нормального трафика через порт 80. Поскольку доступ к серверу разработки больше не нужен, нужно удалить правило, которое открывает порт 8000:
sudo ufw delete allow 8000
sudo ufw allow 'Nginx Full'
В этом руководстве создается проект Django в собственной виртуальной среде. Мы настроили Gunicorn для перевода клиентских запросов, чтобы Django мог их обработать. После этого мы настроили Nginx в качестве обратного прокси-сервера для обработки клиентских подключений и предоставления правильного проекта в зависимости от запроса клиента.
На этом установка Django с PostgreSQL, Nginx и Gunicorn на Ubuntu 18.04 окончена. В нашей базе знаний вы найдёте ещё множество статей посвящённых различным аспектам работы в Linux, а если вы ищете надежный виртуальный сервер под управлением Linux, обратите внимания на нашу услугу — Аренда виртуального сервера на базе Linux.
Заказать сервер на Linux
Как установить Django в Windows
Этот документ проведет вас через установку Python 3.8 и Django для Windows. Он также содержит инструкции по настройке виртуальной среды, упрощающей работу над проектами Python. Цель состоит в том, чтобы сделать его введением для пользователей, работающих над проектами Django, а не описать, как установить Django, чтобы вы могли разработать исправления для самого Django.
Действия, описанные в этом руководстве, были протестированы с Windows 10. Для других версий инструкции должны быть аналогичными. Вам должно быть удобно использовать командную строку Windows.
Установка Python
Django — это веб-приложение для Python, поэтому в системе должен быть установлен Python. На момент написания этого руководства Python 3.8 — самая последняя версия.
Чтобы установить Python на свой компьютер, посетите https://python.org/downloads/ . Этот сайт должен предложить вам кнопку загрузки последней версии Python. Скачайте исполняемый файл установки и запустите его. Установите флажки «Установить программу запуска для всех пользователей (рекомендуется)» и нажмите «Установить сейчас».
После установки откройте командную строку и убедитесь, что версия Python соответствует той, которую вы установили, запустив:
...\> py --version
Смотрите также
Дополнительные сведения см . В документации Использование Python в Windows .
О
pip
pip — это менеджер пакетов для Python, который по умолчанию включен в установщик Python. Он помогает устанавливать и удалять пакеты Python (например, Django!). В остальной части установки мы будем использовать pip
для установки пакетов Python из командной строки.
Настройка виртуальной среды
Общепризнанной хорошей практикой является определение специальной среды для каждого создаваемого вами проекта Django. В экосистеме Python есть много вариантов управления средами и пакетами, некоторые из которых рекомендованы в документации Python . Сам Python содержит venv для управления средами, и именно его мы будем использовать в этом руководстве.
Чтобы создать виртуальную среду для вашего проекта, откройте новую командную строку и перейдите в папку, в которой вы хотите создать проект, затем введите следующее
...\> py -m venv project-name
Это создаст папку с именем «имя-проекта», если она еще не существует, и настроит виртуальную среду. Чтобы активировать среду, запустите
...\> project-name\Scripts\activate.bat
Виртуальная среда будет активирована, и вы увидите «(имя-проекта)» рядом с командной строкой, чтобы убедить вас. Каждый раз, когда вы запускаете новую командную строку, вам нужно будет снова активировать среду.
Установка Django
Django можно легко установить pip
в вашей виртуальной среде.
В командной строке убедитесь, что виртуальная среда активна, и выполните следующую команду:
...\> py -m pip install Django
Это загрузит и установит последнюю версию Django.
В конце установки вы можете проверить, что все прошло успешно, запустив в командной строке.django-admin --version
См. « Начало работы с базой данных» для получения дополнительной информации об установке баз данных с помощью Django.
Общие проблемы
Если
django-admin
отображается только текст справки независимо от указанных параметров, вероятно, проблема с ассоциациями файлов в Windows. Проверьте, определено ли несколько переменных среды для запуска скриптов Python вPATH
. Обычно это происходит, когда установлено несколько версий Python.Если вы используете прокси-сервер для подключения к Интернету, при выполнении команды могут возникнуть проблемы . Задайте переменные среды конфигурации прокси-сервера в командной строке, например:
py -m pip install Django
...\> set http_proxy=http://username:[email protected]:proxyport ...\> set https_proxy=https://username:[email protected]:proxyport
Как установить Django в Windows: пошаговое руководство
Введение
Экосистема Python включает множество веб-фреймворков. Одним из самых популярных является фреймворк Django. Он популярен благодаря своей надежности, безопасности и позволяет разработчикам быстро разрабатывать проекты и укладываться в сроки. Это бесплатное приложение с открытым исходным кодом, работающее как в Windows, так и в *nix-системах.
В этом руководстве вы узнаете, как установить Django в Windows, используя pip
. После этого вы проверите установку, создадите проект и запустите сервер разработки Django.
Предварительные требования
Перед установкой Django убедитесь, что в вашей системе установлен Python. Вы можете ознакомиться с этим руководством — как установить Python на Windows, чтобы узнать, как это сделать.
Команды, которые вы будете запускать в этом руководстве, были протестированы в оболочке PowerShell , но большинство команд должно работать в командной строке Windows (CMD) , за некоторыми исключениями. Для беспрепятственного опыта я бы посоветовал вам использовать PowerShell для этого руководства.
Шаг 1 — Открытие PowerShell
Сначала вам нужно открыть PowerShell на своем компьютере. Вы можете сделать это, выполнив поиск PowerShell в поле поиска Windows, или вы можете открыть диалоговое окно «Выполнить », удерживая клавишу с логотипом Windows и R ( WIN+R
). После открытия диалогового окна введите powershell
и нажмите OK .
Теперь у вас должно открыться окно PowerShell.
Теперь, когда вы открыли PowerShell на своем компьютере, вы проверите установку Python в следующем разделе.
Шаг 2. Проверка установки Python
Прежде чем устанавливать Django, сначала убедитесь, что Python установлен в вашей системе.
Для этого введите следующую команду в приглашении PowerShell, чтобы проверить установку:
> python -V Параметр
-V
регистрирует версию Python, установленную в вашей системе.
После выполнения команды вы должны увидеть следующий вывод:
PS C:\Users\Имя пользователя> python -V Питон 3.9.7
На момент написания это Python 3.9.7. У вас может быть версия, отличная от моей, и это нормально. Пока вы видите зарегистрированную версию Python, Python установлен в вашей системе.
Теперь, когда вы подтвердили, что Python установлен в вашей системе, вы обновите pip
.
Шаг 3. Обновление Pip
Python поставляется с pip
по умолчанию. Но в большинстве случаев это старая версия. это всегда хорошая практика, чтобы обновить pip
до последней версии.
Введите следующую команду для обновления pip
в вашей системе:
> python -m pip install --upgrade pip
Вы получите вывод, идентичный следующему снимку экрана, показывающему, что обновление прошло успешно:
Теперь, когда вы обновили pip
, вы создадите каталог проекта, в который вы установите Django.
Шаг 4. Создание каталога проекта
В этом разделе вы создадите каталог, который будет содержать ваше приложение Django. Мы назовем его django_project
, так как это руководство является демо. Но в реальном проекте вы можете дать каталогу подходящее имя, например, forum
, blog
и т. д.
Перейдите в каталог Desktop
с помощью команды cd
:
Создайте каталог с помощью команды mkdir
:
> mkdir django_project
Перейдите в каталог django_project
с помощью cd
команда:
> cd django_project
Теперь ваше приглашение должно показать вам, что вы находитесь в каталоге django_project
, как показано в следующем выводе:
PS C:\Users\Stanley\Desktop\django_project>
Теперь, когда вы создали рабочий каталог для своего проекта, вы создадите виртуальную среду, в которой вы установите Django.
Шаг 5. Создание виртуальной среды
На этом шаге вы создадите виртуальную среду для своего проекта. Виртуальная среда — это изолированная среда в Python, в которой вы можете установить зависимости проекта, не затрагивая другие проекты Python. Это позволяет создавать разные проекты, использующие разные версии Django.
Если вы не используете виртуальную среду, ваши проекты в вашей системе будут использовать одну и ту же версию Django, установленную глобально. Это может выглядеть хорошо, пока не выйдет последняя версия Django с критическими изменениями, которые приведут к полному сбою ваших проектов.
Вы можете узнать больше о виртуальной среде, прочитав Виртуальные среды Python: введение.
Чтобы создать виртуальную среду, введите следующую команду и подождите несколько секунд:
> python -m venv venv
Команда создаст каталог с именем venv
внутри каталога вашего проекта.
Затем подтвердите создание каталога venv
, указав содержимое каталога с помощью команды ls
:
Вы должны увидеть каталог venv
в выводе, как показано на следующем снимке экрана: вы создали каталог виртуальной среды, вы активируете среду.
Шаг 6. Активация виртуальной среды
В этом разделе вы активируете виртуальную среду в своем каталоге.
Выполните следующую команду, чтобы активировать виртуальную среду:
> venv\Scripts\activate
После запуска команды вы увидите
a (venv)
в начале подсказки. Это показывает, что виртуальная среда активирована:
(venv) PS C:\Users\Stanley\Desktop\django_project>
Если вы столкнетесь с ошибкой, показанной на следующем снимке экрана, в PowerShell при активации виртуальной среды, для краткости я описал причину и решение в другом посте. Следуйте решению ошибки «Выполнение сценариев отключено в этой системе» в PowerShell и не закрывайте PowerShell:
Теперь, когда вы активировали виртуальную среду для своего проекта, момент, которого вы ждали, настал. . Пришло время установить Django!
Шаг 7 — Установка Django
В этом разделе вы установите Django в вашей системе, используя pip
.
Выполните следующую команду, чтобы установить Django с помощью pip install
:
(venv)> pip install django
Команда установит последнюю версию Django. Вы должны увидеть загрузку Django, как показано на следующем снимке экрана:
Если вы хотите установить другую версию Django, вы можете указать версию следующим образом:
(venv)> pip install django == 3.1
После завершения установки необходимо убедиться, что Django установлен. Для этого введите следующую команду:
(venv)> django-admin --version
Вы получите вывод, показывающий версию Django, установленную в вашей системе:
(venv) PS C:\users\stanley\Desktop\django_project> django-admin --version 3.2.7
На момент написания последней версией Django была 3.2.7
, и поэтому мой вывод показывает это.
Теперь вы установили Django в своей системе, отличная работа! Вы начнете создавать проект Django.
Шаг 8.
Создание проекта Django
Теперь пришло время создать проект. Проект имеет другое значение, чем то, к чему вы, возможно, привыкли. Документация Django определяет его как:
Пакет Python, то есть каталог кода, который содержит все настройки для экземпляра Django. Это будет включать конфигурацию базы данных, параметры, специфичные для Django, и параметры, специфичные для приложения.
Вы создаете проект с помощью утилиты командной строки django-admin
, которая поставляется с Django. Команда генерирует файлы, в которых вы можете настроить параметры своей базы данных, добавить сторонние пакеты для своего проекта и многое другое.
Создайте проект с помощью команды django-admin startproject
:
(venv)> django-admin startproject test_project
Перейти в каталог test_project
:
(venv)> компакт-диск test_project
Введите следующую команду, чтобы просмотреть содержимое каталога проекта:
(venv)> ls test_project
Вы получите примерно такой вывод:
(venv) PS C:\users\stanley\Desktop\django_project\test_project> ls Каталог: C:\users\stanley\Desktop\django_project\test_project Режим LastWriteTime Длина Имя ---- ------------- ------ ---- d----- 04. 09.2021 1:25 test_project -а---- 9/4/2021 1:25 690 manage.py
Каталог test_project
содержит файлы конфигурации Django. Файл manage.py
пригодится при запуске сервера разработки, и это то, что вы сделаете на следующем шаге.
Шаг 9. Запуск сервера разработки
Теперь, когда проект создан, мы запустим сервер разработки Django.
Запустите сервер разработки с помощью команды manage.py runserver
:
(venv)> сервер запуска python manage.py
Затем посетите http://127.0.0.1:8000/ в веб-браузере. Вы должны увидеть страницу, похожую на следующий снимок экрана:
Совет Вы можете остановить сервер, удерживая CTRL+C
. Чтобы деактивировать виртуальную среду, вы можете ввести деактивировать
в командной строке.
Теперь вы готовы приступить к разработке вашего проекта.
Заключение
Вы подошли к концу этого руководства, узнали, как установить Django в Windows, проверить установку, а также узнали, как создать проект Django и запустить сервер разработки. Вы можете посетить официальный учебник Django, чтобы узнать, как создать приложение, см. Написание вашего первого приложения Django, часть 1.
Спасибо за чтение и не забудьте подписаться на меня в Твиттере, чтобы получать дополнительные советы.
Как установить Django в Windows/IIS: руководство
Хотя многие разработчики Django могут счесть это кощунством, иногда действительно необходимо развертывать приложения Django в Windows/IIS, особенно при работе с клиентом, инфраструктура которого основана на экосистема Windows. Часть «богохульства» исходит из того, что Django действительно был нацелен на среду Unix, в значительной степени полагаясь на такие функции, как WSGI, FastCGI и инструменты командной строки, которые чужды Windows. К счастью, совместимость Django/IIS улучшается благодаря добавлению функций (которые в противном случае были бы бесполезными) как для Windows, так и для Python+Django, что помогает решить проблемы совместимости между этими двумя несопоставимыми техническими мирами.
В этом кратком учебном пособии вы узнаете, как настроить проект Django в Windows. Он охватывает установку Python, Django и связанных с ними инструментов, включая запуск проекта Django как автономно, так и в качестве сервера FastCGI. Кстати, последнее становится все более важным, поскольку IIS теперь официально поддерживает FastCGI (в IIS 7+ просто установите функцию CGI).
Примечание: Это руководство предназначено для тех, кто разбирается в Windows и знаком с консолью управления IIS. В этом руководстве используется версия IIS 8.5, но описания и методы аналогичны более ранним версиям. Учебник основан на Python 2.7 и Django 1.7, поскольку именно эти версии я использую в своих проектах.
Вы можете найти еще один учебник по Django здесь.
Совет для профессионалов: если вы собираетесь развернуть несколько проектов Django (или даже простого Python) или если вы являетесь разработчиком, вам следует обратить внимание на virtualenv, инструмент для создания изолированных сред Python.
Установка Python в Windows
Сначала загрузите Python. Предоставляются как 32-разрядные, так и 64-разрядные установщики MSI, и вам следует выбрать тот, который подходит для машины, на которую вы устанавливаете.
Основы PIP
PIP — это инструмент, который устанавливает и поддерживает библиотеки Python (одним из примеров которых является Django). Он вызывается запуском команды pip в командной строке. Он реализует несколько подкоманд, и две наиболее полезные из них — установить и заморозить. PIP также установит зависимости проекта (дополнительные библиотеки), если они есть в проекте.
Запуск pip install
Замораживание pip просто показывает список установленных в данный момент пакетов в формате, который непосредственно может использоваться при установке pip.
Обратите внимание, что некоторые пакеты Python/PIP поставляются с библиотеками, написанными на C, которые должны быть скомпилированы для работы пакета. Если вы не настроите свою систему на работающий компилятор C, который также совместим с исполняемыми файлами Python, вы не сможете установить такие пакеты. Django — это чистая библиотека Python, поэтому для ее установки не требуется компилятор C.
Важно, чтобы вы установили Python 2.7.9 или более позднюю версию, поскольку версии Python, начиная с 2.7.9, включают PIP, менеджер библиотек/пакетов/программ Python, который используется для установки всего остального в этом руководстве.
Процесс установки очень простой и понятный. Он предложит установить Python в каталог C:\Python27
, что вы должны принять, так как впоследствии это облегчит вам жизнь. Старайтесь не поддаваться привычке Windows устанавливать программы в каталоги с пробелами в именах.
Основной каталог после установки будет содержать около 8 подкаталогов, несколько различных файлов и два исполняемых файла с именами Python.exe
и PythonW.exe
. Первый является интерпретатором командной строки по умолчанию и оболочкой Python, а второй является только интерпретатором, который не будет использовать (или создавать) окно консоли при вызове и поэтому подходит для запуска приложений Python с графическим интерфейсом.
Далее следует добавить Python в системную переменную среды PATH. Это делается в Дополнительные параметры системы (или Свойства системы ), на вкладке Дополнительные , нажав кнопку Переменные среды . Необходимо добавить два каталога: C:\Python27
и C:\Python27\Scripts
. Они должны быть добавлены к списку PATH, разделенные точкой с запятой (;
). Конец вашей переменной PATH должен выглядеть так: ;C:\Python27;C:\Python27\Scripts
.
Совет для профессионалов: вы также можете установить GOW, облегченную коллекцию утилит командной строки Unix, аналогичную Cygwin. Он предоставит вам такие инструменты, как
ls
, но и более интересные, такие какmake
,wget
,curl
,ssh
,scp
,gzip
и7 tar 90.
Установка Django в Windows
Django можно установить с помощью PIP с помощью такой команды, как pip install django
. Процесс может задействовать некоторые дополнительные зависимости, если их еще нет в вашей системе. В противном случае он просто установит только Django с выводом, подобным следующему:
Загрузка/распаковка джанго Установка собранных пакетов: django Джанго успешно установлен Убираться. ..
Вы можете проверить, работают ли Python и Django для Windows, запустив новую командную строку Windows, выполнив команду python
и введя команду import django
в командной строке Python. Если он работает правильно, после команды import django
не должно быть вывода или сообщений; то есть:
Python 2.7.9 (по умолчанию, 10 декабря 2014 г., 12:24:55) [MSC v.1500 32 бит (Intel)] на win32 Введите «помощь», «авторское право», «кредиты» или «лицензия» для получения дополнительной информации. >>> импортировать джанго >>>
Установка проекта Django в Windows
«Проект» Django состоит из одного или нескольких «приложений». Каталог верхнего уровня проекта обычно содержит один специальный подкаталог проекта, который содержит настройки и некоторую общую информацию об уровне проекта, один подкаталог для каждого приложения и сценарий командной строки с именем manage.py
. Например:
C:\Devel\djangoproject\src>каталог Том на диске С - это ОС Серийный номер тома: 6A3D-C1B8. Каталог C:\Devel\djangoproject\src 12.22.2014 04:25. 12.22.2014 04:25 .. 12.22.2014 04:19<КАТАЛОГ> проекта 12.22.2014 04:58 <КАТАЛОГ> djangoapp 12.16.2014 03:30 шаблоны 12.16.2014 00:50 250 manage.py 1 файл(ы) 250 байт 5 Dir(s) 23 552 929 792 байта свободно
Проекты Django можно просто распространять, архивируя весь каталог проекта и распаковывая его на другом компьютере. В приведенном выше примере проект содержит подкаталог проекта
, каталог приложения с именем djangoapp
и вспомогательный подкаталог templates
.
Скрипт manage.py
— это «швейцарский армейский нож» приложений Django. Он делает все: от создания новых приложений до миграции баз данных до запуска тестового (встроенного) HTTP-сервера или даже сервера FastCGI.
Запуск тестового HTTP-сервера
Если проект и его приложения работают, вы сможете запустить HTTP-сервер Django по умолчанию только для разработки, выполнив команду manage. py runserver
, что должно привести к выводу, подобному следующему:
C:\Devel\djangoproject\src>manage.py runserver Выполнение системных проверок... Проверка системы не выявила проблем (0 отключено). 23 декабря 2014 г. - 01:19:02 Django версии 1.7.1, используя настройки «project.settings» Запуск сервера разработки по адресу http://127.0.0.1:8000/ Выйдите из сервера с помощью CTRL-BREAK.
Как видно из сообщений, это запускает сервер на локальном хосте, порт 8000. Вы можете сразу получить к нему доступ через веб-браузер.
Настройка и запуск сервера FastCGI
Более интересным вариантом является включение сервера FastCGI. С FastCGI вы можете использовать IIS, Apache или любой другой веб-сервер для обслуживания приложения в производственных условиях. Чтобы это работало, вам нужно загрузить fcgi.py (команда управления Django для запуска Django в Windows с IIS через FastCGI) и поместить ее в подкаталог management/commands
приложения Django (не проекта!) . Оба управление
и команды
подкаталоги должны иметь пустой файл с именем __init__.py
(который превращает эти каталоги в модули Python).
fcgi.py
— это очень простой и минималистичный адаптер WSGI-FastCGI, который поддерживает , а не , прослушивание TCP-сокета или канала и выполняет всю свою обработку с использованием stdin
и stdout`. Таким образом, его нельзя использовать с современными веб-серверами, такими как nginx, но будет работает с IIS.
Настройка IIS для запуска приложения FastCGI
Если модуль FastCGI загружен в IIS (или просто модуль CGI в IIS 7+), в консоли управления IIS будет доступен значок «Настройки FastCGI». Django — это фреймворк, который имеет собственную маршрутизацию URL-адресов, поэтому приложения Django должны быть установлены в качестве «обработчика» в IIS для определенных путей. Чтобы установить приложение Django на веб-сайт IIS по умолчанию , выберите его в консоли управления и откройте сопоставления обработчиков 9. Функция конфигурации 0312. В нем нажмите на действие Add Module Mapping… и введите следующую информацию:
- Путь запроса : Установите его на
\*
для обработки всех запросов с внутренней маршрутизацией Django - Module : установите для него значение
FastCgiModule
, чтобы использовать модуль FastCGI IIS - Исполняемый файл : здесь необходимо указать как путь
python.exe
, так и его аргументы командной строки, используя символ вертикальной черты (|
) в качестве разделителя. Пример значения этого параметра:C:\Python27\python.exe|C:\app\src\manage.py fcgi --pythonpath C:\app\src --settings project.settings
. Обратите внимание, что вам нужно указать командуfcgi
для сценарияmanage.py
и вручную указать путь поиска интерпретатора Python для проекта, а также имя модуля Python для модуля настройки проекта. - Имя : Вы можете установить любое значение.
.
Диалоговое окно конфигурации должно выглядеть примерно так:
Затем нажмите кнопку Запрос ограничений и отредактируйте вкладку Сопоставление . Снимите флажок «Вызывать обработчик, только если запрос сопоставлен с…» (в противном случае у IIS возникнут проблемы с сопоставлением того, что он считает подкаталогами в запросе URL):
Нажмите «ОК» в диалоговом окне информации об обработчике. Затем IIS попросит вас подтвердить создание соответствующей записи приложения FastCGI, которую вам нужно будет подтвердить. Эта запись будет видна в Функция FastCGI Settings , доступная на корневом экране консоли управления IIS. Запись по умолчанию, созданная самой IIS, достаточна, но есть некоторые дополнительные настройки, которыми вы можете воспользоваться:
- Максимальное количество экземпляров : Подход, который мы используем для запуска приложений FastCGI, является однопроцессным, однопоточным, что означает, что отдельный процесс интерпретатора Python будет запускаться для каждого одновременного запроса . Этот параметр ограничивает количество одновременных экземпляров приложения Django.
- Мониторинг изменений в файле : по умолчанию после запуска процессы приложений будут активны либо до закрытия вручную, либо до тех пор, пока они не обработают запросы Instance MaxRequest . Используя этот параметр, IIS будет отслеживать метку времени произвольного файла и, если она изменится, остановит и перезагрузит экземпляры приложения. Это удобно как для разработчиков, так и для производственных сред, поскольку позволяет перезагружать приложения при изменении. «Контролировать отметку времени файла для индикатора перезагрузки» — довольно странная концепция в Windows, но это нормально в Unix-подобных средах, поэтому она была перенесена сюда с помощью FastCGI.
Настройка каталогов статических ресурсов и мультимедиа
Современные веб-приложения используют несколько файлов ресурсов, таких как CSS, JavaScript и другие, и приложения Django не являются исключением. Django предоставляет очень удобную функцию, которая позволяет разработчикам интегрировать необходимые ресурсы в дерево каталогов приложений, но Django может извлечь и скопировать их в соответствующий статический каталог. Это в основном функция, контролируемая разработчиком, и места, где Django будет хранить статические файлы, управляются в проекте 9.0007 settings.py . В проектах с хорошим поведением для этого будет использоваться разумный путь, но он не стандартизирован.
Приложения, которые обрабатывают загруженные файлы, хранят их в аналогично управляемом каталоге, который в Django традиционно называется media
. Каталоги static
и media
необходимо добавить в конфигурацию IIS как виртуальные каталоги:
Важным шагом здесь является перенастройка функции сопоставления обработчиков для каждого из каталогов и удаление обработчика приложения Django, оставив Обработчик StaticFile
как самый важный.
Обратите внимание, что каталог static
должен быть доступен для чтения IIS (как и все другие файлы и каталоги в проекте Django), но каталог media
также должен быть доступен для записи IIS. Окончательная конфигурация сайта должна выглядеть следующим образом:
Примечание о базах данных
SQLite работает по умолчанию в Windows, как и в Unix-подобных системах. Большинство других баз данных с открытым исходным кодом теперь работают в Windows, даже PostgreSQL, который я рекомендую. Однако в существующих установках Windows может потребоваться развернуть Django с MS SQL Server. Это возможно либо с помощью драйвера моста ODBC, либо с помощью собственного драйвера MS SQL. Теоретически оба работают, но я их не проверял. По крайней мере, параметры подключения к базе данных (в проекте settings.py
) необходимо изменить, чтобы переключиться на новую базу данных. Перенос данных необходимо выполнять вручную.
Обратите внимание, что при использовании базы данных SQLite и файл базы данных, и каталог, в котором он расположен, должны быть доступны для записи IIS.
Устранение неполадок
Описанная конфигурация проверена и работает, но если что-то пойдет не так, вот несколько основных шагов для устранения неполадок с установкой Django для Windows:
- Попробуйте запустить командную строку FastCGI самостоятельно. Это команда, настроенная в Настройки FastCGI и которые должны совпадать с настроенными в Сопоставления обработчиков для сайта.
- Установите функцию трассировки для IIS, затем настройте ее для сайта Django в правилах отслеживания неудачных запросов для отслеживания всего содержимого ( ), кода состояния «500» и серьезности события «Ошибка». Трассировки будут доступны в виде XML-файлов (с прикрепленным XSLT) в каталоге IIS
C:\inetpub\logs\FailedReqLogFiles
(или аналогичном, в зависимости от вашей конфигурации). Затем вам нужно включить трассировку для конкретного веб-сайта (или виртуального каталога) в *Настроить->Отслеживание неудачных запросов… действие.
Заключение
Безусловно, Django адаптирован для Unix-подобной среды, а наиболее распространенный и поддерживаемый способ запуска Django — в системе Linux (например, с uwsgi и nginx).
Тем не менее, не требуется много усилий, чтобы заставить Django работать в Windows, как показано в этом руководстве. Некоторые из описанных шагов могут показаться нелогичными с точки зрения чистой Windows, но они необходимы, и, к счастью, усилия, затрачиваемые на настройку, являются одноразовыми. После настройки приложение Django должно вести себя почти так же, как на платформе Linux.
Иван Ворас
Внештатный инженер-программист
Об авторе
Иван в первую очередь бэкенд-разработчик с более чем 18-летним опытом проектирования и внедрения серверных решений, включая распределенные платформы, такие как блокчейны, чат-серверы и игровые бэкэнды. Он занимался операциями DBA, разрабатывал модули для PostgreSQL и имеет опыт разработки микропрограмм для устройств IoT.