Руководство. Начало работы с веб-платформой Django в Visual Studio

Django — это высокоуровневая платформа Python для быстрого создания безопасных и масштабируемых веб-систем. В этом руководстве рассматривается платформа Django в контексте шаблонов проектов. Visual Studio предоставляет шаблоны проектов для более простого создания веб-приложений на основе Django.

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

  • создавать базовый проект Django в репозитории Git с помощью шаблона "Пустой веб-проект Django" (шаг 1);
  • создавать приложение Django с одной страницей и преобразовывать эту страницу для просмотра с помощью шаблона (шаг 2);
  • Обслуживание статических файлов, добавление страниц и использование наследования шаблонов (шаг 3).
  • использовать шаблон веб-проекта Django для создания приложения с несколькими страницами и адаптивным дизайном (шаг 4);
  • выполнять проверку подлинности пользователей (шаг 5).

Необходимые компоненты

  • Visual Studio 2017 или более поздней версии в Windows со следующими параметрами:
    • Рабочая нагрузка Разработка на Python (вкладка Рабочая нагрузка в установщике). Инструкции см. в статье Установка поддержки Python в Visual Studio.
    • Git для Windows и расширение GitHub для Visual Studio на вкладке Отдельные компоненты в разделе Средства кода.
  • Visual Studio 2022 в Windows со следующими параметрами:
    • Рабочая нагрузка Разработка на Python (вкладка Рабочая нагрузка в установщике). Дополнительные инструкции см. в статье Установка поддержки Python в Visual Studio.
    • Git для Windows на вкладке Отдельные компоненты в разделе Средства для работы с кодом.

Шаблоны проектов Django также включают более ранние версии инструментов Python для Visual Studio. Содержимое шаблона может отличаться от приводимого в этом учебнике описания (особенно в случаях более ранних версий платформы Django).

Разработка Python в настоящее время не поддерживается в Visual Studio для Mac. В системах Mac и Linux используйте расширение Python в Visual Studio Code.

Проекты Visual Studio и проекты Django

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

Проект Visual Studio может содержать проект Django вместе с несколькими приложениями. В этом руководстве для проекта Visual Studio используется понятие "проект". Когда же говорится о проекте Django, используется конкретное словосочетание "проект Django".

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

Шаг 1–1. Создание проекта и решения Visual Studio

Обычно при работе с Django из командной строки нужно сначала создать проект, выполнив команду django-admin startproject <project_name>. В Visual Studio использование шаблона "Пустой веб-проект Django" обеспечивает ту же структуру, что и в проекте и решении Visual Studio.

  1. В Visual Studio выберите Файл>Создать>Проект, выполните поиск по запросу "Django" и выберите шаблон Пустой веб-проект Django. (Шаблон также можно найти в разделе Python>Интернет в списке слева.)

    New project dialog in Visual Studio for the Blank Django Web Project

  2. В нижней части диалогового окна в полях введите следующие сведения (как показано на предыдущем рисунке), а затем нажмите кнопку ОК.

    • Имя. В качестве имени проекта Visual Studio укажите BasicProject. Это имя используется также и для проекта Django.
    • Расположение. Укажите расположение для создания решения и проекта Visual Studio.
    • Решение. Оставьте в этом поле значение по умолчанию Создать новое решение.
    • Имя решения. Укажите LearningDjango. В этом руководстве данное имя подходит для решения как контейнер для нескольких проектов.
    • Создать каталог для решения. Оставьте флажок установленным (по умолчанию).
    • Создать новый репозиторий Git. Выберите этот параметр (по умолчанию флажок не установлен), чтобы при создании решения в Visual Studio был создан локальный репозиторий Git. Если этот параметр не отображается, запустите Visual Studio Installer и добавьте Git для Windows и Расширение GitHub для Visual Studio на вкладке Отдельные компоненты в разделе Средства для работы с кодом.
  3. Через некоторое время в Visual Studio отобразится диалоговое окно с сообщением Для этого проекта требуются внешние пакеты (как показано ниже). Это диалоговое окно открывается, так как шаблон включает файл requirements.txt, ссылающийся на последнюю версию пакета Django 1.x. (Выберите Показать необходимые пакеты, чтобы просмотреть точный список зависимостей.)

    Prompt saying that the project requires external packages

  4. Выберите параметр I will install them myself (Я установлю их самостоятельно). В ближайшее время вы можете создать виртуальное окружение и исключить его из системы управления версиями. (Среду всегда можно создать из requirements.txt.)

  1. В Visual Studio выберите Файл>Новый>Проект, выполните поиск по запросу "Django", укажите шаблон Пустой веб-проект Django, а затем выберите Далее.

    New project dialog in Visual Studio for the Blank Django Web Project.

  2. Введите следующие сведения и нажмите кнопку Создать:

    • Имя проекта. В качестве имени проекта Visual Studio укажите BasicProject. Это имя используется также и для проекта Django.
    • Расположение. Укажите расположение для создания решения и проекта Visual Studio.
    • Решение. Оставьте в этом поле значение по умолчанию Создать новое решение.
    • Имя решения. Укажите LearningDjango. В этом руководстве данное имя подходит для решения как контейнера для нескольких проектов.

Шаг 1–2. Проверка элементов управления Git и публикация в удаленном репозитории

Так как вы выбрали Создать новый репозиторий Git в диалоговом окне Новый проект, проект уже был зафиксирован в локальной системе управления версиями по завершении процесса создания. На этом шаге вы ознакомитесь с элементами управления Git в Visual Studio и окном Team Explorer, в котором вы будете работать с системой управления версиями.

  1. Проверьте элементы управления Git в нижнем углу главного окна Visual Studio. Эти элементы управления отображаются в следующем порядке (слева направо): неотправленные фиксации, незафиксированные изменения, имя репозитория и текущая ветвь.

    Git controls in the Visual Studio window

    Примечание.

    Если вы не выбрали параметр Создать новый репозиторий Git в диалоговом окне Новый проект, элементы управления Git отображают только команду Добавить в систему управления версиями, которая создает локальный репозиторий.

    Add to Source Control appears in Visual Studio if you've not created a repository

  2. Нажмите кнопку "Изменить" и в Visual Studio на странице изменений откроется окно Team Explorer. Так как созданный проект уже зафиксирован в системе управления версиями автоматически, ожидающие изменения не отобразятся.

    Team Explorer window on the Changes page

  3. В строке состояния Visual Studio нажмите кнопку фиксации (стрелка вверх со значением 2), чтобы открыть страницу Синхронизация в Team Explorer. Так как у вас есть только локальный репозиторий, страница предоставляет простые варианты для публикации репозитория для разных удаленных репозиториев.

    Team Explorer window showing available Git repository options for source control

    Для своих проектов вы можете выбрать любую службу. В этом руководстве используется GitHub. Завершенный пример кода для работы см. в репозитории Microsoft/python-sample-vs-learning-django.

  4. При выборе любого из элементов управления ПубликацияTeam Explorer предложит проверить зависимости для получения дополнительной информации. Например, при публикации примера для этого руководства сначала нужно было создать репозиторий, и в этом случае параметр Отправить в удаленный репозиторий использовался с URL-адресом репозитория.

    Team Explorer window for pushing to an existing remote repository

    Если у вас нет репозитория, параметры Опубликовать в GitHub и Отправить в Azure DevOps позволяют создать его непосредственно из Visual Studio.

  5. При работе с этим руководством вы будете периодически использовать элементы управления в Visual Studio для фиксации и отправки изменений. Мы напомним вам об этом при необходимости.

Совет

Для быстрого перемещения в Team Explorer выберите заголовок (Изменения или Отправить), чтобы открыть контекстное меню доступных страниц.

На этом шаге вы ознакомитесь с элементами управления Git в Visual Studio и Team Explorer. В окне Team Explorer вы будете работать с системой управления версиями.

  1. Чтобы зафиксировать проект в локальном системе управления версиями, выполните следующие действия:

    1. Выберите команду Добавить в систему управления версиями в нижнем углу главного окна Visual Studio.
    2. Затем выберите параметр Git.
    3. Это действие открывает окно репозитория Git, в котором можно создать и отправить новый репозиторий.

    Create a Git repository.

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

    Git controls in the Visual Studio window.

  3. Нажмите кнопку Изменения Git. Visual Studio откроет страницу Изменения Git в Team Explorer. Так как созданный проект уже зафиксирован в системе управления версиями автоматически, ожидающие изменения не отобразятся.

    Team Explorer window on the Git Changes page.

  4. В строке состояния Visual Studio нажмите кнопку фиксации (стрелка вверх со значением 2), чтобы открыть страницу Синхронизация в Team Explorer. На странице Синхронизация можно легко опубликовать локальный репозиторий в различных удаленных репозиториях.

    Team Explorer window showing available Git repository options for source control.

    Для своих проектов вы можете выбрать любую подходящую службу. В этом руководстве используется GitHub. Завершенный пример кода для работы см. в репозитории Microsoft/python-sample-vs-learning-django.

  5. При выборе любого из элементов управления ПубликацияTeam Explorer предложит проверить зависимости для получения дополнительной информации. Например, при публикации примера для этого руководства сначала нужно было создать репозиторий, и в этом случае параметр Отправить в удаленный репозиторий использовался с URL-адресом репозитория.

    Team Explorer window for pushing to an existing remote repository.

    Если у вас нет репозитория, параметры Опубликовать в GitHub и Отправить в Azure DevOps позволяют создать его непосредственно из Visual Studio.

  6. При работе с этим руководством вы будете периодически использовать элементы управления в Visual Studio для фиксации и отправки изменений. Мы напомним вам об этом при необходимости.

Совет

Для быстрого перемещения в Team Explorer выберите заголовок (Изменения или Отправить), чтобы открыть контекстное меню доступных страниц.

Вопрос. Каковы преимущества использования системы управления версиями с самого начала проекта?

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

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

Дополнительные сведения о системе управления версиями как средства автоматизации см. в статье Mobile DevOps - The Source of Truth: The Role of Repositories in DevOps (DevOps для мобильных устройств. Источник правды. Роль репозиториев в DevOps) в журнале MSDN. Эта статья написана для мобильных приложений, однако она применима также и к веб-приложениям.

Вопрос. Можно ли отменить автоматическую фиксацию нового проекта в Visual Studio?

Ответ: Да. Чтобы отключить автофиксацию, перейдите на страницу Параметры в Team Explorer. Выберите Git>Глобальные параметры, снимите флажок По умолчанию фиксировать изменения после слияния и выберите Обновить.

Шаг 1–3. Создание виртуального окружения и его исключение из системы управления версиями

Теперь, когда вы настроили систему управления версиями для своего проекта, можно создать виртуальное окружение, которое содержит необходимые пакеты Django для проекта. Затем с помощью Team Explorer вы сможете исключить папку окружения из системы управления версиями.

  1. В обозревателе решений щелкните правой кнопкой мыши элемент Окружения Python и выберите Добавление виртуального окружения.

    Add Virtual environment command in Solution Explorer

  2. Откроется диалоговое окно Добавление виртуального окружения с сообщением Найден файл requirements.txt. Это сообщение указывает, что Visual Studio использует этот файл для настройки виртуальной среды.

    Add virtual environment dialog with requirements.txt message

  3. Нажмите кнопку Создать, чтобы принять параметры по умолчанию. (При желании вы можете изменить имя виртуального окружения, просто изменив имя своей подпапки. Однако env является стандартным соглашением.)

  4. Согласитесь с привилегиями администратора при появлении запроса, а затем подождите несколько минут, пока Visual Studio загружает и устанавливает пакеты. Для Django этот процесс представляет собой расширение нескольких тысяч файлов в примерно столько же подпапок! Ход выполнения отображается в окне Вывод Visual Studio. Во время ожидания просмотрите раздел вопросов.

  5. В элементах управления Visual Studio Git (в строке состояния) выберите индикатор изменений (со значением 99*), который открывает страницу Изменения в Team Explorer.

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

    Чтобы исключить виртуальное окружение, щелкните правой кнопкой мыши папку env и выберите Игнорировать эти локальные элементы.

    Ignoring a virtual environment in source control changes

  6. После исключения виртуального окружения единственными оставшимися изменениями являются файл проекта и .gitignore. Файл .gitignore содержит добавленную запись для папки виртуального окружения. Вы можете дважды щелкнуть файл, чтобы увидеть различия.

  7. Введите сообщение о фиксации и нажмите кнопку Зафиксировать все, а затем отправьте фиксации в удаленный репозиторий.

  1. В Обозревателе решений щелкните правой кнопкой мыши узел Окружения Python и выберите Добавить среду.

    Add Virtual environment command in Solution Explorer.

  2. Выберите Создать, чтобы принять значения по умолчанию в диалоговом окне "Добавление виртуальной среды". (При желании вы можете изменить имя виртуального окружения, просто изменив имя своей подпапки. Однако env является стандартным соглашением.)

    Add virtual environment dialog with requirements.txt message.

  3. Согласитесь на права администратора при появлении запроса, а затем подождите несколько минут, пока Visual Studio скачивает и устанавливает пакеты. В это время тысячи файлов передаются во множество вложенных папок. Ход выполнения отображается в окне Вывод Visual Studio. Во время ожидания просмотрите раздел вопросов.

  4. В элементах управления Visual Studio Git (в строке состояния) выберите индикатор изменений (со значением 99*), который открывает страницу Изменения в Team Explorer.

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

  5. Чтобы исключить виртуальное окружение, щелкните правой кнопкой мыши папку env и выберите Игнорировать эти локальные элементы.

    Ignoring a virtual environment in source control changes.

  6. После исключения виртуального окружения единственными оставшимися изменениями являются файл проекта и .gitignore. Файл .gitignore содержит добавленную запись для папки виртуального окружения. Вы можете дважды щелкнуть файл, чтобы увидеть различия.

  7. Введите сообщение о фиксации и нажмите кнопку Зафиксировать все, а затем отправьте фиксации в удаленный репозиторий.

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

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

Вопрос. Как удалить виртуальное окружение, которое уже было привязано к системе управления версиями?

Ответ. Сначала измените файл .gitignore, чтобы исключить папку. Найдите в конце раздел с комментарием # Python Tools for Visual Studio (PTVS) и добавьте новую строку для папки виртуального окружения, например /BasicProject/env. (Visual Studio не отображает файл в Обозреватель решений. Чтобы открыть файл напрямую, перейдите в раздел "Открыть>файл".> Вы также можете открыть файл из Team Обозреватель. Перейдите на страницу Параметры и выберите репозиторий Параметры. Теперь перейдите к разделу "Игнорировать и файлы атрибутов" и выберите ссылку "Изменить" рядом с .gitignore.)

Далее откройте окно командной строки и перейдите к папке, например BasicProject. Папка BasicProject содержит папку виртуального окружения, например env. Выполните команду git rm -r env. Затем скопируйте эти изменения из командной строки (git commit -m 'Remove venv') или зафиксируйте на странице изменений в Team Explorer.

Шаг 1–4. Изучение стереотипного кода

После завершения создания проекта изучите стереотипный код проекта Django (который снова совпадает с кодом, созданным командой CLI django-admin startproject <project_name>).

  1. В проекте в качестве корневого компонента используется административная служебная программа командной строки Django manage.py, которую Visual Studio автоматически устанавливает в качестве файла запуска проекта. Запустите служебную программу в командной строке с помощью python manage.py <command> [options]. Для выполнения стандартных задач Django Visual Studio предоставляет удобные команды меню. В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт Python, чтобы открыть список. Некоторые из этих команд используются при работе с данным руководством.

    Django commands on a Python project context menu.

  2. В проекте есть папка, имя которой соответствует имени проекта. В ней содержатся основные файлы проекта Django.

    • __init.py — пустой файл, который сообщает Python, что эта папка представляет собой пакет Python.
    • settings.py — содержит параметры для проекта Django, которые вы изменяете в процессе разработки веб-приложения.
    • urls.py — содержит таблицу содержимого для проекта Django, которое вы также изменяете в процессе разработки.
    • wsgi.py — точка входа для веб-серверов, совместимых с WSGI, для использования в проекте. Обычно этот файл не нужно изменять, так как он предоставляет обработчики для рабочих веб-серверов.

    Django project files in Solution Explorer.

  3. Как отмечалось ранее, шаблон Visual Studio также добавляет в проект файл requirements.txt, определяющий зависимость пакета Django. Этот файл предлагает создать виртуальное окружение при первом создании проекта.

Вопрос. Может ли Visual Studio создать файл requirements.txt из виртуального окружения после установки других пакетов?

Ответ: Да. Разверните узел Окружения Python, щелкните свое виртуальное окружение правой кнопкой мыши и выберите команду Создать requirements.txt. Эту команду хорошо использовать периодически при изменении окружения и фиксировать изменения в файле requirements.txt в системе управления версиями вместе с любыми другими изменениями кода, которые зависят от этого окружения. Если вы настроили непрерывную интеграцию на сервере сборки, каждый раз при изменении окружения необходимо создавать файл и фиксировать изменения.

Шаг 1–5. Запуск пустого проекта Django

  1. В Visual Studio выберите Отладка>Начать отладку (F5) или нажмите кнопку Веб-сервер на панели инструментов (браузер может отличаться):

    Run web server toolbar button in Visual Studio.

  2. Запуск сервера означает запуск команды manage.py runserver <port>, которая запускает встроенный сервер разработки Django. Если в Visual Studio отображается сообщение Не удалось запустить отладчик с сообщением об отсутствии файла запуска, щелкните правой кнопкой мыши файл manage.py в обозревателе решений и выберите пункт Задать как файл запуска.

  3. При запуске сервера откроется окно консоли, в котором также отображается журнал сервера. Visual Studio автоматически открывает браузер для http://localhost:<port>. Поскольку в проекте Django нет приложений, Django отображает только страницу по умолчанию, чтобы сообщить о нормальном состоянии процесса работы.

    Django project default view.

  4. По окончании остановите сервер, закрыв консольное окно или используя команду Отладка>Остановить отладку в Visual Studio.

Вопрос. Является ли Django веб-сервером и платформой?

Ответ. Да и нет. Django имеет встроенный веб-сервер, который используется для целей разработки. Этот веб-сервер используется, когда вы запускаете веб-приложение локально, например при отладке в Visual Studio. Однако, при развертывании на веб-узле, Django использует вместо этого веб-сервер узла. Модуль wsgi.py в проекте Django отвечает за подключение к рабочим серверам.

Вопрос. В чем разница между использованием команд меню "Отладка" и команд сервера в подменю проекта Python?

Ответ. В дополнение к командам меню Отладка и кнопкам панели инструментов вы также можете запустить сервер с помощью команд Python>Запуск сервера или Python>Запуск сервера отладки в контекстном меню проекта. Обе команды открывают окно консоли, в котором содержится локальный URL-адрес (localhost:port) для работающего сервера. Однако вы должны вручную открыть браузер с этим URL-адресом. При запуске сервера отладки отладчик Visual Studio не запускается автоматически. При желании вы можете присоединить отладчик к процессу позже с помощью команды Отладка>Присоединение к процессу.

Следующие шаги

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

Дополнительные подробности