Django cms установка на windows: Как установить Django Cms на сервер? — Хабр Q&A

Содержание

Установка 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 install —upgrade аналогичным образом обновит существующий пакет до его самой последней версии. PIP поддерживает специальный синтаксис для установки точных версий пакета вместо «самой последней». Это делается путем добавления оператора и номера версии к имени пакета; например «Jinja2==2.7.3» (чтобы установить точную версию) или «six>=1.8» (чтобы установить любую версию, равную или превышающую указанный номер версии).

Замораживание 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:

  1. Попробуйте запустить командную строку FastCGI самостоятельно. Это команда, настроенная в Настройки FastCGI и которые должны совпадать с настроенными в Сопоставления обработчиков для сайта.
  2. Установите функцию трассировки для 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.