Джанго всемогущий: как освоить Python Django с нуля

Настройка сервера для django-проектов с нуля

Хочу поделиться опытом настройки сервера для django-проектов. Так вышло, что мне часто приходится настраивать с нуля VPS-сервера для запуска на них django-сайтов. Как-то мне в голову пришла идея записать пошагово процесс настройки. Оказалось, что “по бумажке” выполнять эти рутинные операции гораздо проще и быстрее — все нюансы записаны, трудно что-то упустить. Дальше больше — я превратил инструкцию в самостоятельный shell-скрипт — запустил и сервер готов. Я думаю, некоторым python-разработчикам, особенно начинающим, будет полезно ознакомиться с содержимым скрипта. С некоторыми доработками вы, возможно, захотите использовать его в своей практике.

Inbenefit

Django – абсолютно свободный каркас для разработки приложений, созданный для программирования в связке с Python. Ключевыми преимуществами является принцип Don’t Repeat Yourself, возможность подключения сторонних модулей, автоматически создаваемая админ-панель, высокая скорость работы и просто потрясающая документация. Среди известных компаний, использующих этот фреймворк, стоит упомянуть Instagram, Google, YouTube, Disqus и Washington Times.

Чему вы научитесь?

  • Использовать HTML для создания контента сайта
  • Использовать CSS для создания стиля сайта
  • Использовать преимущества Bootstrap для быстрой разработки сайта
  • Использовать JavaScript для взаимодействия с сайтом через Front-End
  • Использовать jQuery для быстрой работы с DOM
  • Понимать принцип HTTP-запросов
  • Как использовать возможности Python для разработки своих веб-приложений
  • Использовать Django в качестве back-end для своих сайтов
  • Создавать превосходные лендинги
  • Создавать полнофункциональные сайты во всем стеке на Django

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

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

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

$ django-admin startproject mysite

Это создаст каталог в текущем каталоге. Если нет, смотрите .

Примечание

Вы не должны использовать в качестве названия проекта названия компонентов Python или Django. Это означает, что проект не может называться (что конфликтует с Django) или (конфликтует со стандартным пакетом Python).

Где разместить этот код?

Если вы раньше использовали PHP, то, наверное, привыкли размещать код проекта в корневом каталоге сайта на Web-сервере (например, ). C Django вы не должны этого делать. Это плохая идея добавлять код проекта в корень Web-сервера, так как есть риск, что он будет доступен для просмотра. Не делайте этого в целях безопасности.

Разместите код в каталоге вне корневой директории сайта, например .

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

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

Рассмотрим эти файлы:

3.5. Определяем URL’ы

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

Обратите внимание на замыкающий символ ; как думаете, почему он важен?
вторым параметром указывается вызываемое представление. Это может быть как непосредственно вызываемый объект (импортированный вручную), так и строка описывающая его

Если это строка, то в случае соответствия URL-шаблона строке запроса, Django сам импортирует необходимый модуль (до последней точки), и вызовет последний сегмент строки (после последней точки);
замете, что когда мы используем представление-класс, мы обязаны использовать реальный объект, а не строку описывающую этот объект. Мы должны так делать из за того, что мы вызываем метод класса . Этот метод возвращает обертку над нашим классом, которую может вызвать диспетчер URL Django;
имя, данное URL-шаблону, позволят вам делать обратный поиск;
имя URL полезно, когда вы ссылаетесь из одного представления на другое, или выполняете перенаправление, так как вы можете управлять структурой URL’ов из одного места.

переменных

Пространства имен URL¶

У учебного проекта есть только одно приложение: . В реальных проектах Django может быть пять, десять, двадцать приложений или больше. Как Django различает имена URL между ними? Например, приложение имеет представление , как и приложение в том же проекте, что и для блога. Как сделать так, чтобы Django знал, какое представление приложения создавать для URL при использовании тега шаблона ?

Ответ заключается в том, чтобы добавить пространство имен в ваш URLconf. В файле добавьте для установки пространства имен приложения:

polls/urls.py

from django.urls import path

from . import views

app_name = 'polls'
urlpatterns = 
    path('', views.index, name='index'),
    path('<int:question_id>/', views.detail, name='detail'),
    path('<int:question_id>/results/', views.results, name='results'),
    path('<int:question_id>/vote/', views.vote, name='vote'),

Теперь измените ваш шаблон :

polls/templates/polls/index.html

<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>

для указания на пространство имен:

polls/templates/polls/index.html

<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>

Шаблон проекта на Джанго с инструментами сборки и утилитами

Иногда приходится создавать с нуля сайт на Джанге. Это и тесты концепций, и простенькие странички (ведь если мы в проекте используем разные мощные инструменты, почему бы сайт-визитку не сделать тоже с их помощью, избавив себя от ручной работы?).
Итак, представляю публике проект под девизом «Поменьше писанины! Побыстрей, дебаг!» Набор для скоростной разработки на Джанго.
Это 2 шаблона:

  • шаблон конфига buildout, который подтягивает и собирает все необходимые проекту пакеты
  • шаблон проекта, а именно настройки, включающие все нужные инструменты, и набор статики (готовые файлы на Haml и Sass)

Размещение Django сайта на Heroku

Последний шаг — это фактическое размещение кода на Heroku. Если вы раньше настраивали сервер, вы будете поражены тем, как сильно Heroku упрощает данный процесс.

Весь процесс будет состоять из следующих этапов:

  • создайте новое приложение на Heroku и вставьте в него наш код;
  • настройте взаимодействие с git, то есть так называемый «hook» для Heroku;
  • настройте приложение на игнорирование статических файлов;
  • для активации приложения в онлайн режим, запустите сервер Heroku;
  • посетите приложение, перейдя по предоставленному Heroku URL адресу.

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

Shell

(pages) $ heroku create
Creating app… done, ⬢ fathomless-hamlet-26076
https://fathomless-hamlet-26076.herokuapp.com/ |
https://git.heroku.com/fathomless-hamlet-26076.git

1
2
3
4
(pages)$heroku create

Creating app…done,⬢fathomless-hamlet-26076

httpsfathomless-hamlet-26076.herokuapp.com|

httpsgit.heroku.comfathomless-hamlet-26076.git

На данный момент нам остается только настроить Heroku. Для этого укажем Heroku проигнорировать статические файлы вроде CSS и JavaScript, которые Django по умолчанию попытается исправить под себя. Выполним следующую команду:

Shell

(pages) $ heroku config:set DISABLE_COLLECTSTATIC=1

1 (pages)$heroku configset DISABLE_COLLECTSTATIC=1

Теперь можем разместить код на Heroku.

Shell

(pages) $ git push heroku master

1 (pages)$git push heroku master

Если бы мы только что набрали , то код был бы загружен в GitHub, а не в Heroku. Добавление слова в команду позволяет отправить код на Heroku. Первые несколько раз это может сбивать с толку.

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

Введите следующую команду.

Shell

(pages) $ heroku ps:scale web=1

1 (pages)$heroku psscale web=1

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

Shell

(pages) $ heroku open

1 (pages)$heroku open

Наш адрес . Вы можете убедиться в этом, вот появившаяся домашняя страница:

Домашняя страница на Heroku

Страница «About» также открылась должным образом:

Страница «About» на Heroku

Вам нет нужды разлогиниваться или покидать свое приложение в Heroku. Оно будет работать само по себе на этом бесплатном уровне.

Теория Python

Онлайн учебники

  • Codecademy — это действительно хорошее место, чтобы начать учиться с нуля. Но после обновления обучающих программ, задания стали слишком простыми. Еще одним недостатком является небольшое количество инструкций по Django;
  • Coursera — замечательный ресурс, где вы будете работать с кодом на регулярной основе. Но, если начинаете курс новичка, вам следует подождать (иногда несколько недель) начала расширенных тем;
  • Tutorialspoint — лучше всего описывать, как упрощенную версию официальной документации. Здесь вы можете найти описание большинства базовых понятий, ключевых терминов и некоторых встроенных библиотек. Описание краткое и четкое. Для большинства новичков это отличный вариант, но это не то место, где стоит начинать с нуля;
  • SoloLearn — предлагает набор мобильных обучающих программ, включая Python. Действительно приятные курсы для тех, кто не может заснуть без серфинга с мобильного телефона. Теоретическая часть хороша, однако практические задачи иногда кажутся труднопреодолимыми. Некоторые примеры еще сложнее и не помогут вам в реальной ситуации. Большая часть приложения — это простые тесты.

Курсы для web-разработчика на Python Django

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

Есть платные и бесплатные онлайн и очные курсы, видеолекции, книги, интернет-ресурсы. Дистанционные курсы длятся от месяца до полугода в зависимости от того, насколько насыщенная программа. Стоит обучение от 15–20 тыс. рублей. Многие онлайн-университеты выдают выпускникам, успешно защитившим дипломную работу, диплом международного образца и помогают в трудоустройстве.

Какими знаниями и навыками должен обладать будущий Django-разработчик

Минимальный пакет знаний junior Django-разработчика включает:

  • основы HTML для web-ресурсов;
  • Python, его структуры данных и библиотеки;
  • jQuery, CSS, Git, IDE или редактор кода;
  • английский язык (нужен для чтения документации, статей), но для начала достаточно уметь читать со словарем.

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

Что нужно, чтобы стать junior Django:

Что нужно знать чтобы стать junior djangoЧто нужно знать чтобы стать junior django

Какие учебники и пособия будут полезны Django-программисту

Чтобы получить начальное понимание общих методов программирования и языка Python стоит изучить уроки Learn Python the Hard Way (есть на русском языке) или Google’s python class. Learn Python the Hard Way имеет смысл изучать до 42 урока — далее описываются достаточно сложные вещи, которые на начальном уровне не нужны. В Google’s python class желательно делать каждое упражнение, не подсматривая в ответы.

Программисты советуют новичкам книги:

  • Марк Лутц «Изучаем Python» (4-е издание);
  • Марк Лутц «Программирование на Python»;
  • Чед Фаулер «Программист-фанатик»;
  • Билл Любанович «Простой Python»;
  • Бен Форт «Освой самостоятельно SQL»;
  • Ultimate Django (пошаговые уроки по созданию приложения);
  • Джон Дакетт «HTML и CSS. Разработка и дизайн веб-сайтов»;
  • руководство TaskBuster Django Tutorial (на английском);
  • Дэвид Флэнаган «JavaScript. Подробное руководство».

Для начального понимания фреймворка достаточно освоить официальный учебник и документацию. Лучше сделать это дважды, чтобы понять, как взаимосвязаны все части. Легко подана информация на ресурсе Django Girls Tutorial (есть перевод на русский).

Более глубокое понимание Python дадут курсы Udacity’s intro CS class или Unit 1 of MIT’s intro CS course. Эти ресурсы почти взаимозаменяемы. После можно начинать практиковаться в создании простых приложений.

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

Курсы Django Python для начинающих

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

Необходимо сразу найти курс, где минимум 80 % времени уделено практике

Также желательно, чтобы обучение проводил практикующий разработчик уровня не ниже senior.

Как найти подходящий Django-видеокурс в Интернете

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

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

Возможно ли освоить Django Python за 1 час:

Учим Python DJANGO за 1 час! #От ПрофессионалаУчим Python DJANGO за 1 час! #От Профессионала

Написание просмотров ¶

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

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

mysite / news / views.py

from django.shortcuts import render

from .models import Article

def year_archive(request, year):
    a_list = Article.objects.filter(pub_date__year=year)
    context = {'year' year, 'article_list' a_list}
    return render(request, 'news/year_archive.html', context)

Шаблоны ¶

Шаблон — это текстовый файл. Он может генерировать любой текстовый формат (HTML, XML, CSV и т. Д.).

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

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

{% extends "base_generic.html" %}

{% block title %}{{ section.title }}{% endblock %}

{% block content %}
<h1>{{ section.title }}</h1>

{% for story in story_list %}
<h2>
  <a href="{{ story.get_absolute_url }}">
    {{ story.headline|upper }}
  </a>
</h2>
<p>{{ story.tease|truncatewords:"100" }}</p>
{% endfor %}
{% endblock %}

Интерфейс динамического администрирования: это не просто строительные леса, это настоящий дом. ¶

После того, как ваши модели определены, Djando может автоматически создать профессиональный и готовый к работе административный интерфейс , веб-сайт, который позволяет аутентифицированным пользователям добавлять, изменять и удалять объекты. Единственное требование — зарегистрировать вашу модель на сайте администрирования:

мой сайт / новости / models.py

from django.db import models

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

мой сайт / новости / admin.py

from django.contrib import admin

from . import models

admin.site.register(models.Article)

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

ITVDN

Django – это самый популярный фреймворк для разработки веб-приложений на языке Python.

На курсе «Django Starter» вы получите базовые знания этого фреймворка и научитесь применять их на практике. Во время обучения вы спроектируете своё первое веб-приложение с помощью Django, познакомитесь на практике с Django RESTful API, узнаете его плюсы и минусы, научитесь делать свое приложение более стабильным и защищенным, и научитесь устанавливать ваше приложение на удаленный сервер.

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

Дизайн URL ¶

Четкая и элегантная схема URL-адресов — важный аспект качественного веб-приложения. Django поощряет создание красивых URL-адресов и не помещает в них никаких расширений, таких как или .

Чтобы разработать URL-адреса для приложения, вы создаете модуль Python с именем URLconf . Это сводка для вашего приложения, она содержит привязки между вашими шаблонами URL и соответствующими функциями Python. Эти конфигурации URL-адресов также используются для отделения URL-адресов от вашего кода Python.

Вот как может выглядеть URLconf для предыдущего / примера :

mysite / news / urls.py

from django.urls import path

from . import views

urlpatterns = 
    path('articles/<int:year>/', views.year_archive),
    path('articles/<int:year>/<int:month>/', views.month_archive),
    path('articles/<int:year>/<int:month>/<int:pk>/', views.article_detail),

Приведенный выше код связывает URL-адреса с функциями приема Python («представлениями»). Строки пути используют теги параметров для «захвата» значений из URL. Когда пользователь запрашивает страницу, Django проходит все пути по порядку и останавливается, как только один из этих путей совпадает с запрошенным URL (если ни один из них не совпадает, Django вызывает специальное представление 404 ). Это очень быстро, так как при начальной загрузке пути компилируются в регулярные выражения.

Как только один из шаблонов URL совпадает, Django вызывает связанное представление, которое является функцией Python. Каждое представление получает объект запроса, который содержит метаданные запроса, а также значения, зафиксированные в шаблоне.

Написание представлений¶

Теперь давайте добавим еще несколько представлений в . Эти представления немного отличаются, потому что они принимают аргумент:

polls/views.py

def detail(request, question_id):
    return HttpResponse("You're looking at question %s." % question_id)

def results(request, question_id):
    response = "You're looking at the results of question %s."
    return HttpResponse(response % question_id)

def vote(request, question_id):
    return HttpResponse("You're voting on question %s." % question_id)

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

polls/urls.py

from django.urls import path

from . import views

urlpatterns = 
    # ex: /polls/
    path('', views.index, name='index'),
    # ex: /polls/5/
    path('<int:question_id>/', views.detail, name='detail'),
    # ex: /polls/5/results/
    path('<int:question_id>/results/', views.results, name='results'),
    # ex: /polls/5/vote/
    path('<int:question_id>/vote/', views.vote, name='vote'),

Перейдите в браузере по адресу «/polls/34/». Он запустит метод и отобразит любой идентификатор, который вы указали в URL. Попробуйте также «/polls/34/results/» и «/polls/34/vote/» — они отобразят результаты и страницы голосования.

Когда кто-то запрашивает страницу с вашего сайта — скажем, «/polls/34/», Django загрузит модуль Python , поскольку на него указывает параметр . Он находит переменную с именем « urlpatterns« и просматривает шаблоны по порядку. После нахождения соответствия в «polls/» — в „polls.urls“ URLconf для дальнейшей обработки. Там он соответствует , что приводит к вызову представления следующим образом:

detail(request=<HttpRequest object>, question_id=34)

django.utils.translation ¶

Полное обсуждение того, как использовать следующее, см. В документации по переводу .

( сообщение )
Переводит и возвращает результат в виде строки.
( контекст , сообщение )
Переводит в соответствии с и возвращает результат в виде строки.

Для получения дополнительной информации см. .

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

См. .

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

См. .

( язык )
Получает каталог переводов для заданного языка и активирует его как текущий каталог переводов для текущего потока.
()
Отключает активный каталог переводов, чтобы при последующих вызовах _ снова вызывался каталог переводов по умолчанию.
()
Размещает экземпляр как активный каталог переводов. Это может быть полезно, если вы хотите, чтобы отложенные переводы по какой-то причине отображались с их исходной (следовательно, непереведенной) строкой.
( язык , деактивировать = False )
Менеджер контекста Python, который использует для получения каталога переводов для заданного языка, активирует его как каталог переводов для текущего потока и повторно активирует ранее активный язык при выходе. Вы можете установить для параметра значение, если хотите, чтобы временный язык перевода отключался при выходе из менеджера с помощью . Если параметр равен , экземпляр активируется в коде, назначенном диспетчером контекста.

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

( lang_code )
Проверяет, существует ли глобальный языковой файл для данного языкового кода (например, «fr», «pt_BR»). Это используется, чтобы решить, доступен ли язык, запрошенный пользователем.
()
Возвращает текущий выбранный код языка. Возвращает значение , указывающее, временно отключены ли переводы (по или при передаче ).
()
Возвращает двунаправленную раскладку выбранного языка:
  • = расположение слева направо
  • = расположение справа налево
( запрос , check_path = False )
Проанализируйте запрос, чтобы найти язык, который хочет пользователь. Учитываются только языки, указанные на нем. Если пользователь запрашивает субкод языка, когда доступен только основной язык, возвращается основной язык.

Если это первая функция просмотра запрошенного URL-адреса, чтобы узнать, начинается ли путь с кода языка в настройке .

( lang_code , strict = False )
Возвращает, если он указан в настройке , возможно, выбирая более общий вариант. Например, «es» `возвращается, если есть, а то есть, но нет .

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

Генерировать, если ничего не найдено.

( язык )
Преобразуйте название языка (en-us) в название языка (en_US).
( SRC )
Преобразует шаблон Django в контент, который можно анализировать . Этот процесс переводит теги перевода Django в стандартные вызовы функций .

Как искать вакансии Django-программисту

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

На удаленку лучше переходить более опытному и дисциплинированному программисту, а не новичку

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

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

Последнее обновление: 14.02.2018

Перед началом работы с Django нам естественно надо установить интерпретатор Python. Подоробнее об этом можно почитать
здесь.

Существуют разные способы установки Django. Рассмотрим рекомендуемый способ.

Для установки нам потребуется пакетный менеджер pip. Менеджер pip позволяет загружать пакеты и управлять ими.
Нередко, при установке python также устанавливается и менеджер pip. В этом случае мы можем проверить версию менеджера, выполнив в командной строке/терминале следующую команду:

pip -v

Но если pip не установлен, то мы увидим ошибку типа .
В этом случае нам надо установить pip.

python get-pip.py

Если pip ранее уже был установлен, то можно его обновить с помощью команды

pip install --upgrade pip

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

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

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

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

pip install virtualenv

Теперь создадим вируальную среду. Вначале определим каталог для виртуальных сред, где будут располагаться все связанные файлы и папки.
Например, пусть это будет каталог C:\virtualenv.
Прежде всего перейдем в командной строке/терминале в этот каталог с помощью команды cd. Затем для создания виртуальной среды выполним следующую команду:

virtualenv hello

Команде virtualenv передается название среды, которая в данном случае будет называться «hello».

После этого в текущей папке будет создан подкаталог hello.

Активация виртуальной среды

Для использования виртуальную среду надо активировать. И каждый раз, когда мы будем работать с проектом Django, связанную с ним виртуальную среду
надо активировать. Например, активируем выше созданную среду, которая располагается в текущем каталоге в папке hello.
Если наша ОС — Windows, то в папке hello/Scripts/ мы можем найти файл activate.bat, который активирует виртуальную среду.
Поэтому для Windows активация виртуальной среды будет выглядеть таким образом:

hello\Scripts\activate.bat

Для Linux и MacOS активация будет производиться с помощью следующей команды:

source ~/.hello/bin/activate

После окончания работы с виртуальной средой мы можем ее деактивировать. Для этого в той же папке hello/Scripts/
мы можем найти файл deactivate.bat и таким же образом запустить его.

Установка Django

После активации виртуальной среды для установки Django выполним в консоли следующую команду

pip install django

Она устанавливает последнюю версию Django.

НазадВперед

Установка и настройка среды разработки Python/Django

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

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

Вторая строчка Interpreter отвечает за выбор установленного в системе интерпретатора языка Python. Их может быть несколько, но пока мы не будем вдаваться в нюансы. Сразу отмечу, что для каждого проекта лучше создавать отдельную виртуальную среду (VirtualEnv), которая будет содержать установленные модули, необходимые для конкретного проекта и их настройки и версии не будут влиять на другие проекты. Давайте создадим новую VirtualEnv нажав на шестеренке справа и выбрав пункт Create VirtualEnv.

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

Нажимаем ОК и ждем пока закончится процесс создания виртуальной среды. После нажимаем на кнопку Create внизу справа и запускаем процесс создания проекта.

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

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий