Деплой проекта Django в продакшн с Nginx + Gunicorn + Supervisor

👁 21 просмотров

В данном посте рассмотрим один из современных вариантов деплоя готового проекта Django в готовый режим работы. В посте будет рассмотрены моменты настройки и интеграции с Django таких инструментов, как:

  • Nginx — WEB-сервер;
  • Gunicorn — HTTP-сервер Python WSGI;
  • Supervisor — менеджер процессов.

Исходные данные

Для использования данного поста требуются следующие исходные данные по ПО:

  • готовый удаленный сервер Linux в виде VPS/VDS с выделенным IP;
  • установленный и настроенный Python 3 c виртуальными средами и разрабатываемым проектом на Django;

Исходные данные по неймингу:

  • /home/myprojectenv/ — абсолютный путь к папке виртуальной среды;
  • /home/myprojectenv/myproject/ — абсолютный путь к папке проекта на Django;
  • (myprojectenv)user@host: /myprojectenv/ —  вид строки запроса в консоли под активной виртуальной средой Python;
  • 11.22.33.44IP нашего удаленного сервера VDS/VPS.

 

Установка и настройка Nginx и Gunicorn

Для начала нужно сделать апгрейд

sudo apt-get update
sudo apt-get upgrade

Ставим Nginx

sudo apt-get install nginx

Теперь заходим под виртуальную среду нашего(или вашего) проекта

cd /home/myprojectenv/
source bin/activate

Под активной виртуальной средой ставим Gunicorn

(myprojectenv)user@host: /home/myprojectenv# pip[pip3] install gunicorn

Замечание. Помните про версии pip. Если Python 2.x, то пишем pip, если Python 3.xpip3. Это по дефолту, если у вас не настроено иначе.

Теперь, перед тем, как идти дальше, протестируем удачную установку Gunicorn и интеграцию с проектом Django и для этого выполняем команду

(myprojectenv)user@host: /home/myprojectenv/myproject# gunicorn myproject.wsgi:application --bind 11.22.33.44:8000

Идем в браузер и запускаем по адресу страницу 11.22.33.44:8000 и убеждаемся, что все ок.

Далее настраиваем папку статических файлов и для этого открываем файл настроек проекта в папке /home/myprojectenv/myproject/myproject/settings.py

nano settings.py

Добавляем в этот файл параметр STATIC_ROOT, если его нет, со следующим значением

...
STATIC_ROOT = '/home/myprojectenv/myproject/static/'
...

Сохраняем, выходим и далее выполняем из папки проекта команду

(myprojectenv)user@host: /home/myprojectenv/myproject# pip[pip3] python manage.py collectstatic

После чего в папке проекта появится новая папка с именем static.

Теперь идем и настраиваем Nginx по пути в файле

cd /etc/nginx/sites-available/

открываем файлик default

nano default

и перепишем некоторые моменты, как ниже

server {
    listen 80;
    server_name 11.22.33.44; #либо ip, либо доменное имя
    access_log  /var/log/nginx/example.log;

    location /static/ {
        root /home/myprojectenv/myproject/;
        expires 30d;
    }

    location / {
        proxy_pass http://127.0.0.1:8000; 
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

сохраняем и выходим.

Выполняем перезапуск Nginx, чтобы изменения вступили в силу

sudo service nginx restart

 

Активируем нашу среду и заходим в папку проекта для проверки запуска в связке Gunicon + Nginx

(myprojectenv)user@host: /home/myprojectenv/myproject# gunicorn myproject.wsgi:application

В браузере набираем 11.22.33.44 и убеждаемся, что все ок.

Установка и настройка Supervisor

Чтобы ваше приложение стартовало после любого непредвиденного рестарта системы или сбоя, нам нужно использовать в деле supervisor.

Установим supervisor

apt-get install supervisor

Создадим конфигурационный файл для gunicorn в подпапке проекта (myproject/myproject/) рядом с settings.py

cd /home/myprojectenv/myproject/myproject
touch gunicorn.conf.py
nano gunicorn.conf.py

и записываем туда такие данные

bind = '127.0.0.1:8000'
workers = 3
user = "nobody"

 

Теперь создаем конфигурационный файл для supervisor

cd /etc/supervisor/conf.d/
touch myproject.conf
nano myproject.conf

и записываем туда такие данные

[program:myproject]
command=/home/myprojectenv/bin/gunicorn myproject.wsgi:application -c /home/myprojectenv/myproject/myproject/gunicorn.conf.py
directory=/home/myprojectenv/myproject
user=nobody
autorestart=true
redirect_stderr=true

 

Запускаем проект через supervisor

supervisor restart myproject

В браузере набираем 11.22.33.44 и убеждаемся, что все ок.

Дополнительный тест. Можно также перезагрузить сервер

shutdown -r now

и убедиться, что наш проекта на Django сам автоматом встал и заработал при помощи supervisor.

При использовании Supervisor необходимо использовать его подпроцесс управления supervisorctl. Остальные основные команды supervisor

  • supervisorctl reread;
  • supervisorctl update;
  • supervisorctl status myproject;
  • supervisor restart myproject.

 

Использованные материалы:

  1. Django + Python3 + Nginx + Gunicorn + DO;
  2. Setting up Django with Nginx, Gunicorn, virtualenv, supervisor and PostgreSQL

 

Построение проекта Django с БД Postgre SQL и импорт данных из SQLite

👁 15 просмотров

Допустим, есть у нас такая ситуация, что проект на Django установлен а использованием локальной БД SQLite и нам необходимо это все экспортировать в реляционную БД на примере PostgreSQL.

Реляционные системы управления базами данных являются ключевым компонентом многих веб-сайтов и приложений. Они обеспечивают структурированный способ хранения, организации и доступа к информации.

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

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

Репозитории Ubuntu по умолчанию содержат пакеты Postgres, поэтому их можно установить с помощью apt-системы. Перед этим обновим свой локальный индекс пакета. Затем установим пакет Postgres вместе с пакетом -contrib, который добавит некоторые дополнительные утилиты и функции

sudo apt-get update
sudo apt-get install libpq-dev postgresql postgresql-contrib

Запускаем PostgreeSQL

sudo su - postgres

Командная строка терминала теперь будет начинаться с postgres@yourserver.

Теперь заходим в режим команд SQL и интерфейса PostgreSQL

postgres@yourserver# psql

После команды выше командная строка теперь будет начинаться с postgres=#.

Создаем базу данных для проекта, обратите внимание, что в режиме SQL запрос должен оканчиваться «;»

postgres=# CREATE DATABASE projectdb;

 

Создаем пользователя для БД проекта

postgres=# CREATE USER dbuser WITH PASSWORD 'userpass';

Мы устанавливаем кодировку по умолчанию для UTF-8, которую ожидает Django. Мы также устанавливаем схему изоляции транзакций по умолчанию «read commit», которая блокирует чтение из незафиксированных транзакций. Наконец, мы устанавливаем часовой пояс. По умолчанию наши проекты Django будут настроены на использование UTC

postgres=# ALTER ROLE dbuser SET client_encoding TO 'utf8';
postgres=# ALTER ROLE dbuser SET default_transaction_isolation TO 'read committed';
postgres=# ALTER ROLE dbuser SET timezone TO 'UTC';

 

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

postgres=# GRANT ALL PRIVILEGES ON DATABASE projectdb TO dbuser;

 

Выходим из режима ввода SQL, чтобы вернуться к сеансу оболочки postgres

\q

Выходим из сеанса оболочки postgres, чтобы вернуться к сеансу оболочки обычного пользователя

exit

Настройка проекта Django на использование

PostgreSQL

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

Создание и настройка виртуальной среды

Создаем виртуальную среду для хранения зависимостей Python проекта Django, набрав команду

virtualenv myprojectenv

Это установит локальную копию Python и pip[pip3] в каталог myprojectenv

Прежде, чем создать проект Django нужно сначала активировать виртуальную среду, которую мы создали шагом выше

source myprojectenv/bin/activate

После этой команды строка запроса будет похожа на (myprojectenv)user@host.

В окружении проекта устанавливаем пакеты Django и psycopg2, который является бэкэндом для PostgreSQL

(myprojectenv)user@host: /myprojectenv# pip[pip3] install django psycopg2

 

Замечение. Тут еще один момент, связанный с psycopg2. Начиная с версии 2.8 данный пакет будет переименован в psycopg2-binary и поэтому нужно дополнительно установить данный пакет с этим названием

(myprojectenv)user@host: /myprojectenv# pip[pip3] install django psycopg2-binary

В противном случае, может возникнуть предупреждение такого рода

/home/websofter/lib/python3.6/site-packages/psycopg2/__init__.py:144: 
UserWarning: The psycopg2 wheel package will be renamed from release 2.8; 
in order to keep installing from binary please use "pip install psycopg2-binary" instead. 
For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.

Дополнительно про это можно узнать по ссылке.

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

Теперь мы можем запустить проект Django в нашей директории myprojectenv. Это создаст дочерний каталог с именем проекта myproject , в котором будет еще одна папка с тем же названием для хранения самого кода и создаст сценарий управления в текущем каталоге. Не забудьте добавить точку в конце команды, чтобы она была правильно настроена

(myprojectenv)user@host: /myprojectenv# pip[pip3] django-admin.py startproject myproject .

 

Теперь нам надо отредактировать файл настроек myproject/myproject/settings.py проекта на то, чтобы проект, вместо базы SQLite, который стоит по умолчанию начал работать с базой Postgre, который мы выше настроили и для этого открываем этот файл настроек и ищем там строки

. . .
ALLOWED_HOSTS = []
. . .
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
. . .

и заменяем это все на

. . .
ALLOWED_HOSTS = ['server-domain_or_IP']
. . .
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'projectdb',
        'USER': 'dbuser',
        'PASSWORD': 'userpass',
        'HOST': 'localhost',
        'PORT': '',
    }
}
. . .

Сохраняем и закрываем этот файл.

Миграция баз данных на использование Postgre и запуск проекта

Теперь, когда настройки Django настроены, мы можем перенести наши структуры данных в нашу базу данных и протестировать сервер.

(myprojectenv)user@host: /myprojectenv/myproject# python manage.py makemigrations
(myprojectenv)user@host: /myprojectenv/myproject# python manage.py migrate

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

(myprojectenv)user@host: /myprojectenv/myproject# python manage.py createsuperuser

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

(myprojectenv)user@host: /myprojectenv/myproject# python manage.py runserver 0.0.0.0:8001

На этом интеграция и запуск закончена. Остается любоваться результатом через адрес сервера и порт 8001, на котором запущен наш проект Django с БД Postgree

http://server_domain_or_IP:8000

 

Импорт данных из SQLite в PostgreSQL

в проекте Django

Окей. Выше мы рассмотрели, как интегрировать проект Django с Postgre, но что если в SQLite есть уже данные, которые нужно перенести в Postgre SQL?

Выгружаем существующие данные из SQLite, причем, в настройках settings.py нужно настроить на использование SQLite

(myprojectenv)user@host: /myprojectenv/myproject# python manage.py dumpdata > datadump.json

Изменяем settings.py на использование Postgres backend. Выше мы это уже рассматривали как делать.

Убедитесь, что вы можете подключиться к PostgreSQL. Затем

(myprojectenv)user@host: /myprojectenv/myproject# python manage.py migrate --run-syncdb<br>

 

Использованные источники:

  1. How To Use PostgreSQL with your Django Application on Ubuntu 14.04
  2. How to migrate Django from SQLite to PostgreSQL

Установка Django и запуск на VPS Ubuntu с доступом через домен

👁 35 просмотров

Установка Django

Для начала нам нужно установить Python 2.7 или установить Python 3.6 с инструментом virtualenv, при помощи которого создаем виртуальную среду(например myenv) и в активированном режиме выполняем команду установки

(myenv)root@username:/home/myenv# pip3 install django

Замечание. Если мы используем интерпретатор версии 2.x, то пакетный менеджер по умолчанию будет просто pip, а если используется версия 3.x, то он будет называться pip3. В данном примере используется интерпретатор 3.6.

Далее создаем проект Django

(myenv)root@username:/home/myenv# django-admin startproject mysite

Теперь в папке(виртуальной среде) myenv будет новая папка mysite,  в котором будет наш проект наш Django

Заходим в саму папку проекта mysite и мигрируем туда инструменты Django командой

(myenv)root@username:/home/myenv/mysite# python manage.py migrate

 

Замечание по возможным ошибкам. Вероятно, что появится ошибка версий, если помимо Python 3.7 у нас в системе Python 2.7, 3.5, 3.6 … и выглядит это так:

Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "manage.py", line 14, in <module>
) from exc
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

Чтобы это решить нужно либо поменять алиас

alias python=/usr/bin/python3.6

Замечание. Команда добавления алиаса выше в идеале должна создать равносильную ссылку команды python с python3. Но, вероятно, что он может не сработать и тогда придется вручную править файл .bashrc

nano ~/.bashrc

и добавляем туда линк

alias python=python3

Файл .bashrc предназначен для задания псевдонимов команд и функций, используемых пользователями оболочки bash.

Либо запустить команды Django той версией, которая подходит

(myenv)root@username:/home/myenv/mysite# python3.6 manage.py migrate

Даем доступ к нашему проекту из вне, разрешив адрес сервера в файле проекта

mysite
|______mysite
           |______settings.py

и задаем параметр, как адрес нашего VPS

ALLOWED_HOSTS = ["66.54.87.12"]

 

Замечание. Если проект запускается на локальном хостинге, то можно не указывать порт и адрес, а в файле настроек settings.py оставляем все как есть или указываем адрес 127.0.0.1

Запускаем сервер по IP адресу

(myenv)root@username:/home/myenv/mysite# python manage.py runserver 0:8001

Замечание. Цифра 0 означает,что мы запускаем наш сайт по адресу 0.0.0.0:8001 это говорит нам о том, что к нашему проекту отныне можно получить доступ из вне через IP VPS.

Запуск и создание администратора сайта

Теперь зайдя по адресу нашего IP мы увидим страницу приветствия проекта Django

Давайте теперь создадим нового суперпользователя для нашего проекта Django

(myenv)root@username:/home/myenv/mysite# python manage.py createsuperuser

Данная команда далее запросит имя пользователя, электронную почту и пароль, при помощи которых мы сможем войти в панель управления проектом через адрес 66.54.87.12:8001/admin

После удачного входа мы увидим страницу администратора

 

Часть 4. Python/Django и Hello World. Структура проекта Django и создание приложений

👁 161 просмотров

Цикл статей «Django шаг за шагом»

Информация, которая будет дана в данном посте, исходя из заголовка, будет актуальная для версий Django 1.9.x и Python 3.4.x, что будут соответствовать последним версиям на момент написания поста. Для проверки версии Django — фреймворка существует замечательная команда:

python -c "import django; print(django.get_version())"

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

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

  • установить интерпретатор Python;
  • установить менеджер пакетов pip;
  • установить модуль создания виртуальных  сред virtualenv через менеджера пакетов pip, что поможет нам управлять проектом находясь в UNIX — подобной среде;
  • создать виртуальную среду (например, test) и активировать его;
  • установить фреймворк Django через менеджера пакетов pip из активированной виртуальной среды;
  • создать новый проект(например, mysite) в текущей виртуальной среде.

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

django-proj-structure-for-post

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

  • Внешняя папка mysite/ — эта директория является корневой папкой нашего сайта и просто контейнером, где будут создаваться наши приложения и файлы для управления проектом. Название данной директории ничего не значит для Django и его можно поменять на свое усмотрение;
  • manage.py — инструмент управления из командной строки при помощи которого можно управлять проектом различными путями. В частности, при помощи данного инструмента запускается наш проект на сервере Python. Про этот инструмент можно почитать дополнительно вот тут;
  • внутренняя директория mysite/ — это текущий и единственный, на данный момент, пакет Python в нашем проекте. Имя данного пакета. в дальнейшем, будет использовано для импорта внутренней структуры кода, к примеру, для импорта mysite.urls;
  • mysite/__init__.py — этот пустой файл предназначен для указания и регистрации пакетов. Наличие данного файла в директории mysite/ говорит Python, чтобы он различал эту директорию в виде пакета. Дополнительно об этом можно почитать тут;
  • mysite/settings.py — это файл установок и конфигурации текущего проекта Django;
  • mysite/urls.py — это URL — декларации текущего Django — проекта или, иначе говоря,“таблица контента” вашего Django-проекта. Дополнительно об этом можно почитать тут;
  • mysite/wsgi.py — точки входа для WSGI-совместимого веб-сервера. Подробно об этом тут.

После того, как разобрали начальную структуру пустого проекта, давайте создадим какое-нибудь(например, блог) приложение через команду:

python manage.py startapp blog

После выполнения данной команды в корневой папке проекта появится новая директория blog/, которая будет содержать свой список файлов

django-proj-app-structure-for-post

Раскроем суть каждой папки и файла в приложении:

  • migrations/ — папка, в которой будут храниться миграции базы данных;
  • _init_.py — указание Python, чтобы он обработал папку приложения в виде пакета проекта;
  • admin.py — здесь хранятся настройки стандартной административной панели;
  • models.py — файл, в котором будут модели приложения;
  • test.py — песочница юнит-тестов;
  • views.py — файл для хранения видов.

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

Часть 3. Python/Django и Hello World. Настройка быстрого запуска проектов в виртуальных средах через обертки разделения под OS Windows.

👁 113 просмотров

Цикл статей «Django шаг за шагом»

После того, когда мы уже создали и запустили тестовый проект Python/Django под ОС Windows, то нам необходимо сделать несколько операций по упрощению управления и переключения между проектами через командную строку, чтобы не писать лишний раз однотипные команды. И тут мы подходим к стадию изучения оберток виртуальной среды для разделения проектов и быстрого их запуска.

Установка инструмента обертки виртуальной среды

Для установки инструмента виртуальной обертки заходим в папку пользователя, у меня это C:/Users/WebSofter, и запускаем команду установки:

pip install virtualenvwrapper-win

Далее проследует процесс установки и после установки надо создать новую переменную в переменных средах пользователя в виде WORKON со значением пути %USERPROFILE%\Envs, где Envs — это папка хранения для всех, создаваемых виртуальных сред
python-create-virt-param-wrapper-WORKON

Отныне, для создания виртуальной среды достаточно из любого места набрать команду:

mkvirtualenv MyEnv

где MyEnv — это название новой среды. При создании виртуальной среды они автоматически создаются в папке C:\WebSofter\Envs. А для деактивации текущей виртуальной среды достаточно набрать из любого места команду:

deactivate

А для переключения активации той или иной среды достаточно набрать команду:

WORKON MyEnv

где MyEnv — активируемая среда.
На этом установка и настройка оберток виртуальной среды окончено.

Часть 2. Python/Django и Hello World. Настройка администрирования тестового проекта Python/Django под OS Windows.

👁 140 просмотров

Цикл статей «Django шаг за шагом»

Для того, чтобы полноценно понимать как устроена модель MVC/MTV -модель фреймворка Django для нас будет очень полезно понимать как создаются модели, виды и шаблоны. Чтобы сделать такую тестовую страницу, где есть и модель и вид и контроллер в фреймворке Django есть встроенная система создания администраторов системы, по простому счету, это обычная панель администратора сайта. В данной статье проведем операции создания нового администратора и создадим базу данных для хранения администраторов. По умолчанию, Django работает с локальной БД SQLite, этого достаточно для мелких проектов, но если требует создавать большую базу данных с большим количеством запросов, то потребуется установить MySQL или PostgreSQL или что-то еще посерьезнее. При установке Django — исходников проекта БД SQLite создается автоматически и нам остается только создать суперпользователя через командную строку и войти через панель управления сайта

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

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

python manage.py migrate
python manage.py createsuperuser

Заполняем регистрационные данные и далее запустим наш сервер:

python manage.py runserver

python-create-django-site-superuser

Далее переходим по ссылке

http://127.0.0.1:8000/admin/

и заполняем данные, которые мы установили в настройках суперпользователя на этапе создания суперпользователя — логин и пароль и увидим панель управления
python-page-of-admin-panelНа этом настройка и создание суперпользователя сайта на Python/Django под Windows закончено.

Часть 1. Python/Django и Hello World. Запуск тестового сайта на Python/Django под OS Windows.

👁 361 просмотров

Цикл статей «Django шаг за шагом»

Django — это MVC/MTV — фреймворк, написанный на языке Python,  а Python — высокоуровневый язык для всех повседневных задач на любой платформе и имеет интерпретаторы для всех известных ОС, есть даже реализация для запуска поверх Java — машины, которая именуется , как Jython.

О чем будет статья?

В статье затронем моменты установки интерпретатора Python 3.x и Django на Windows, в целях запуска тестового сайта на Python на ОС Windows. Обычно, при разработке проекта приходиться писать код на десктопе, чем и служит для нас Windows, а конечный вариант грузить на сервер, где правит только командная строка Linux — системы.

Установка Python и PIP на Windows

Для установки переходим на официальный сайт разработчика. Наводим курсором на раздел «Downloads» и видим всплывающее табло

get-python-version-3

На момент написания данной статьи поддерживаются 2 версии языка — 2.x и 3.x. Так как на версии 2.x написано очень много проектов и версии языка отличаются друг от друга кардинально, то поддерживаются обе версии, но в новых проектах предпочтительнее использовать последнюю версию языка — 3.x. Загружаем и кликаем для установки. Установка Python 3.x идет стандартным образом

install-py-step-1

На начальном этапе установки необходимо указать, что мы хотим добавить нашу программу в переменную среду Windows, чтобы выполнять команды Python через командную строку. Если данный пункт отсутствует на интсалляторе, то придется добавить вручную через панель настроек Windows, прописав через «;» путь установки Python для переменной PATH. Инсталлятор предлагает по умолчанию установить Python в папку пользователя системы. Нажмем пользовательский режим, оставляем все, как есть и принимаем во внимание, что pip устанавливается в процессе инсталляции Python и если в инсталляторе его нет, придется установить после установки Python.

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

install-py-step-2

Жмем «Next» и меняем место установки. Можно установить в любое удобное место — все на вкус и удобство пользователя. Жмем «Install» и заканчиваем установку.

install-py-step-3

Если в командной строке выскакивает сообщение, что есть более новая версия pip и, вместе с инсталлятором установилась старая версия, то проблему решит апгрейд pip через команду:

python -m pip install -U pip

Если pip не установлен при инсталляции, то давайте разберем другой способ установки pip. Другой способ установки инструмента pip — скачиваем этот инструмент get-pip.py с официального сайта и запускаем этот файл через командную строку

python get-pip.py

После установки надо добавить переменную C:\PythonServer\Lib\site-packages\django\bin в PATH к уже имеющимся переменным Python, которые были добавлены автоматически инсталлятором

django-bin-in-path

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

После того, как Python и pip установлены и настроены переменные среды, необходимо установить пакеты Django. Есть несколько способов установки Django. В данной статье будем пользоваться рекомендованным методом установки официального релиза Django.

Ниже показан рекомендованный метод установки Django от разработчиков этого фреймворка:

  1. Установка через pip. Так как pip был установлен через автономный инсталлятор, то необходимо проверить на то, что он имеет последнюю, актуальную версию, иначе это может быть причиной сбоя установки.
  2. Использование virtualenv и virtualenvwrapper. Эти инструменты предоставляют изолированные среды Python, которые являются более практичными, чем устанавливаемые пакеты в системе. Они , также, позволяют устанавливать пакеты без привилегий администратора. Здесь дополнительная информация по созданию и использованию virtualenv на Python 3.
  3. После создания и активации виртуальной среды, нужно установить Django через команду
pip install Django

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

  1. Так как pip был у нас установлен в процессе инсталляции, то пропускаем этот шаг.
  2. Устанавливаем виртуальную среду через установщик pip при помощи последовательности команд:
    pip freeze
    pip install virtualenv

    и проверяем версию установленного virtualenv:

    pip freeze

    python-inst-virt-env

  3. Итак, в предыдущем шаге мы установили инструмент для создания виртуальных сред Python. Настал момент создания виртуальной среды. Виртуальную среду можно создать в любом месте. Для нашего примера создадим в корневой папке Python C:\PythonServer\  новую папку Environments, в которой будут создаваться наши новые среды. Теперь в этой папке создадим новую виртуальную среду под названием «sites» и для этого, через командную строку заходим в папку C:\PythonServer\Environments и выполняем команду:
    virtualenv sites

    И после того, когда виртуальная среда создана, через командную строку заходим в папку созданной виртуальной среды:

    cd sites

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

    .\Scripts\activate

    и выполняем команду:

    pip freeze

    которая вернет версию скрипта
    python-create-virt-env
    Для деактивации текущей среды или выхода из текущей среды необходимо, из папки текущей среды, выполнить команду:

    .\Scripts\deactivate

     

  4. После того, как создали виртуальную среду и активировали нам необходимо установить в эту виртуальную среду фреймворк Django:
    pip install django

    Далее заходим в папку нашей среды и устанавливаем через .\Scripts\django-admin.py исходники нашего проекта через команду:

    pip freeze
    python .\Scripts\django-admin.py

    или то же самое можно сделать через команду, которая работает через виртуальную среду:

    django-admin startproject mathzilla

    где mathzilla — это название моего проекта. После выполнения этой команды в корневой папке нашей среды sites будет создана новая папка mathzilla с исходниками нашего начального проекта и осталось его запустить.
    В Django, внутри проекта может содержаться приложения и по сути дела, любой проект Django — это сборка мелких отдельных приложений, которые, как кирпичики служат для всей работоспособной системы. Для создания приложения внутри проекта необходимо зайти внутрь папки проекта и запустить команду:

    pip freeze
    python .\Scripts\django-admin.py

    или, то же самое можно сделать командой:

    django-admin startapp myapp

    Для запуска проекта переходим в папку нашего проекта выполняем команду запуска сервера при помощи файла manage.py:

    cd mathzilla
    python manage.py runserver

    python-inst-django-run-server
    и пойдет процесс запуска сервера с указанием локальной ссылки и порта, по которому у нас доступен наш тестовый сайт на Django. В моем случае сервер запустился по ссылке:

    http://127.0.0.1:8000/

    python-runned-django-project

На этом установка Python и тестового сервера с Django завершена.