Установка и настройка Django 3 через pipenv (создание сайтов) — Урок 1

Сегодня мы поговорим о том, как правильно осуществлять настройку сервера для работы с проектами, созданными с использованием фреймворка Django. Начнем с описания командной строки и методов установки последних Django (3.0) и Python 3.8. После этого попробуем разобрать виртуальные окружения, git и особенности работы в текстовом редакторе. Как следствие, вы будете готовы к созданию и модификации проектов Django за небольшое количество нажатий.

Как использовать командную строку для настройки Django?

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

На Mac командная строка называется терминалом. Он расположен в /Applications/Utilities. Откройте окно Finder, а потом папку Applications, внизу вы найдете папку Utilities. Далее делаете двойной клик мышью, с помощью чего можете запустить терминал.

К слову, терминал есть не только на системах Mac, но и на любых других Unix-подобных системах. Например, в Linux, независимо от модификации.

 

В Windows имеются две специализированные оболочки, позволяющие работать с командной строкой: Command shell и PowerShell. Советуем использовать PowerShell. Она имеет несколько более широкий функционал.

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

Имеется большое количество команд и их модификаций. Тем не менее, в реальности для разработки программ с помощью Django чаще всего применяются такие:

  • cd — открыть папку;
  • cd .. — открыть папку, расположенную уровнем выше;
  • ls — вывести перечень файлов в имеющейся директории;
  • pwd — вывести имя имеющейся директории;
  • mkdir — создать папку;
  • touch — создать файл.

Включите командную строку и попробуйте каждую команду. Знак доллара ($) – подсказка, что вы работаете с командной строкой. Все команды даны после знака $. Допустим, вы используете Ubuntu Linux. Поменяем директорию рабочего стола Desktop.

$ cd ~/Desktop

Учтите то, что текущее расположение, то есть ~/Desktop, в окне терминала было добавлено перед знаком доллара. Чтобы подтвердить, что отображаемая локация верна, возможно использование pwd. Эта команда покажет адрес текущей папки.

~/Desktop $ pwd

/home/wsv/Desktop

На Ubuntu строка, которую мы получим, означает, что на данный момент пользователь wsv работает. А слово desktop означает рабочий стол, который он использует.

Теперь создадим новую папку, используя mkdir, далее введем команду cd, а потом создадим файл index.html, воспользовавшись командой touch. Необходимо учесть, что, к сожалению, Windows не дает возможности использовать инструкцию touch. Если дается команда к созданию файла, это необходимо делать с помощью вашего текстового редактора.

~/Desktop $ mkdir new_dir && cd new_dir

~/Desktop/new_dir $ touch index.html

Теперь примените ls, чтобы показать перечень всех файлов, которые находятся в текущей папке. Как можно понять, здесь есть исключительно созданный index.html.

~/Desktop/new_dir $ ls

index.html

На завершающем этапе снова откроем директорию Desktop, для чего воспользуемся командой cd .. а потом проверим провильность введенной локации с pwd.

~/Desktop/new_dir $ cd ..

~/Desktop $ pwd

/home/wsv/Desktop

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

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

Виртуальные окружения – очень важные аспекты Python-разработки. Что это такое? Под виртуальными окружениями (средами) подразумевается изолированные контейнеры, состоящие из обязательных для определенного проекта программных инструментов. Они невероятно важны, поскольку по умолчанию Python и Django инсталлируются в одну и ту же папку. Вот почему возможно появление проблем, когда человек хочет взаимодействовать непосредственно с несколькими проектами на одном компьютере. А что, если ProjectA использует Django 3.0, а ProjectB, выпущенный в прошлом году, все еще на 1.11?

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

Для управления управления виртуальными средами мы будем применять Pipenv. Pipenv напоминает npm и yarn из JavaScript/Node экосистем: он создает Pipfile, где расположены подходящие инструменты разработки, а также Pipfile.lock для обеспечения детерминированных сборок. «Детерминирование» означает, что при каждой загрузке приложения в новое окружение набор параметров будет оставаться прежним.

Себастиан МакКензи, разработчик Yarn, в котором был введен концепт пакетирования JavaScript, создал маленький пост о том, что такое детерминирование и насколько он важен. C Pipenv мы будем создавать виртуальное окружение для всех Django проектов.

Для установки Pipenv возможно использование pip, который Homebrew (Mac) инсталлировал автоматически, равно как и Python третьей версии. Если вы владелец любой другой ОС, то команда не отличается.

$ python3 -m pip install pipenv

Установка Django с помощью pipenv

Чтобы в действии оценить Pipenv, необходимо создать дополнительную директорию и инсталлировать Django. В первую очередь нам надо переместиться на рабочий стол Desktop. Там мы создадим папку django, для попадания в которую нужно воспользоваться командой cd.

$ cd ~/Desktop

$ mkdir django

$ cd django

Теперь для установки Django давайте использовать Pipenv.

$ pipenv install django==3.0

Если посмотрите внутрь папки, то обнаружите, что в ней образовалось два файла: Pipfile и Pipfile.lock. Теперь у нас имеется полный набор данных, необходимый для создания виртуального окружения. Тем не менее, пока ничего не активировано. Исправим ситуацию, воспользуясь pipenv shell.

$ pipenv shell

В процессе работы с Django на Ubuntu вы обнаружите, что имя папки, которая является текущей в командной строке, взято в скобки. Это говорит об активации виртуальной среды. Будучи расположенным внутри папки django, перед знаком доллара мы увидим (django).

Необходимо учитывать, что из-за ошибки в Windows, на данный момент возможность получить зрительное подтверждение активации виртуального окружения отсутствует. Тем не менее, в дальнейшей секции возможно выполнение команды django-admin startproject. После этого станет понятно, что виртуальное окружение Django установлено правильно.

(django) $

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

(django) $ django-admin startproject test_project .

Давайте немного рассмотрим причину, по которой мы в прошлой команде использовали точку. Если вы просто осуществите запуск django-admin startproject test_project то Django автоматически создаст такую структуру:

└── test_project

    ├── manage.py

    └── test_project

        ├── __init__.py

        ├── settings.py

        ├── urls.py

        └── wsgi.py

Как вы можете понять, просто создается папка test_project, в которой есть файл manage.py и а также дополнительная директория test_project. Чувствуется повторение, поскольку прежде нами уже создавалась папка django на рабочем столе, и мы уже переместились в нее. Будет лучше ввести команду django-admin startproject test_project . с точкой в конце. Это необходимо для инсталляции в конкретную папку — на этот раз итог будет следующим:

├── manage.py

└── test_project

    ├── __init__.py

    ├── settings.py

    ├── urls.py

    └── wsgi.py

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

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

Осталось удостовериться, что все нормально функционирует. Для этого включим веб-сервер Django.

(django) $ python manage.py runserver

Нами будет получен такой ответ:

Watching for file changes with StatReloader

Performing system checks...

 

System check identified no issues (0 silenced).

 

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.

Run 'python manage.py migrate' to apply them.

 

May 05, 2020 - 12:36:09

Django version 3.0, using settings 'test_project.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CONTROL-C.

И, в результате, при посещении этого адреса – http://127.0.0.1:8000/ появится такая страница.

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

(django) $ exit

Выводы

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

ОфисГуру
Adblock
detector