Использование расширения Cookiecutter
Cookiecutter предоставляет графический пользовательский интерфейс для поиска шаблонов, ввода их параметров и создания проектов и файлов. Visual Studio 2017 и более поздних версий включает расширение Cookiecutter. Его можно установить отдельно в более ранних версиях Visual Studio.
В Visual Studio расширение Cookiecutter доступно в разделе View>Cookiecutter Обозреватель:
Необходимые компоненты
Visual Studio. Чтобы установить продукт, выполните действия, описанные в разделе "Установка Visual Studio".
Python 3.3 или более поздней версии (32-разрядная или 64-разрядная версия) или Anaconda 3 4.2 или более поздней версии (32-разрядная или 64-разрядная версия).
Если подходящий интерпретатор Python недоступен, в Visual Studio отображается предупреждение.
Если вы устанавливаете интерпретатор Python во время работы Visual Studio, выберите параметр "Главная" на панели инструментов cookiecutter Обозреватель, чтобы обнаружить только что установленный интерпретатор. Дополнительные сведения см. в статье "Создание сред Python и управление ими" в Visual Studio.
Работа с Обозреватель cookiecutter
В cookiecutter Обозреватель можно просматривать и выбирать шаблоны, клонировать шаблоны на локальный компьютер, задавать параметры шаблона и создавать код из шаблонов.
Обзор шаблонов
Вы можете просматривать шаблоны в cookiecutter Обозреватель, чтобы узнать, что уже установлено и что доступно.
В Обозреватель cookiecutter выберите параметр "Главная" на панели инструментов, чтобы просмотреть доступные шаблоны.
На домашней странице отображается список шаблонов для выбора из четырех возможных групп:
Групповой Описание Основание Установлено Шаблоны, установленные на локальном компьютере. Когда используется шаблон в Интернете, его репозиторий автоматически клонируется в подпапку ~/.cookiecutters. Вы можете удалить установленный шаблон из системы, нажав кнопку "Удалить" на панели инструментов cookiecutter Обозреватель. Рекомендуется Шаблоны, загруженные из рекомендуемого веб-канала. Корпорация Майкрософт курирует веб-канал по умолчанию. Вы можете настроить веб-канал, выполнив действия, описанные в разделе "Настройка параметров cookiecutter". GitHub Результаты поиска GitHub для ключевое слово cookiecutter. Список репозиториев Git возвращается в форме с разбивкой на страницы. Если список результатов превышает текущее представление, можно выбрать параметр "Загрузить больше ", чтобы отобразить следующий набор результатов с разбивкой на страницы в списке. Пользовательское Все пользовательские шаблоны, определенные с помощью cookiecutter Обозреватель. При вводе пользовательского расположения шаблона в поле поиска cookiecutter Обозреватель расположение отображается в этой группе. Вы можете определить пользовательский шаблон, введя полный путь к репозиторию Git или полный путь к папке на локальном диске. Чтобы отобразить или скрыть список доступных шаблонов для определенной категории, щелкните стрелку рядом с категорией.
Клонирование шаблонов
Вы можете работать с доступными шаблонами в cookiecutter Обозреватель, чтобы сделать локальные копии доступными для работы.
В файле cookiecutter Обозреватель выберите шаблон. Сведения о выбранном шаблоне отображаются в нижней части домашней страницы cookiecutter Обозреватель.
Сводка шаблона содержит ссылки для получения дополнительных сведений о шаблоне. Вы можете перейти на страницу репозитория GitHub для шаблона, просмотреть вики-сайт шаблона или найти сообщаемые проблемы.
Чтобы клонировать выбранный шаблон, нажмите кнопку "Далее". Cookiecutter создает локальную копию шаблона.
Поведение клонирования зависит от типа выбранного шаблона:
Тип шаблона | Поведение |
---|---|
Установлено | Если выбранный шаблон был установлен в предыдущем сеансе Visual Studio, он автоматически удаляется, а последняя версия устанавливается и клонируется на локальном компьютере. |
Рекомендуется | Выбранный шаблон клонируется и устанавливается на локальном компьютере. |
GitHub | Выбранный шаблон клонируется и устанавливается на локальном компьютере. |
Пользовательский поиск | - URL-адрес: если ввести настраиваемый URL-адрес репозитория Git в поле поиска cookiecutter Обозреватель, а затем выбрать шаблон, выбранный шаблон клонируется и устанавливается на локальном компьютере. - Путь к папке: если ввести путь к пользовательской папке в поле поиска и выбрать шаблон, Visual Studio загружает этот шаблон без клонирования. |
Внимание
Шаблоны Cookiecutter всегда клонируются в одной папке ~/.cookiecutters. Каждая вложенная папка называется именем репозитория Git, который не включает имя пользователя GitHub. При клонировании различных шаблонов с одинаковым именем, принадлежащих разным пользователям, могут возникнуть конфликты. В таком случае вы не сможете перезаписать существующий шаблон на другой с таким же именем. Чтобы установить другой шаблон, сначала нужно удалить существующий.
Настройка параметров шаблона
После установки и клонирования шаблона локально файл Cookiecutter отображает страницу "Параметры ". На этой странице можно указать параметры, например расположение пути к папке для созданных файлов:
Каждый шаблон Cookiecutter определяет собственный набор параметров. Если для параметра доступно значение по умолчанию, на странице "Параметры " отображается предлагаемый текст в соответствующем поле. Значение по умолчанию может быть фрагментом кода, часто когда это динамическое значение, использующее другие параметры.
В этом примере имя шаблона определяется как cookiecutter-flask/cookiecutter-flask.flask. При изменении значения параметра текст поля доступен для редактирования.
В поле Create to введите расположение пути к папке для всех файлов, созданных cookiecutter.
Затем задайте другие нужные параметры для шаблона, например:
- full_name. Полное имя, применяемое к шаблону.
- email: адрес электронной почты автора шаблона.
- github_username: псевдоним GitHub автора шаблона.
- python_version: целевая версия Python для веб-приложений, созданных на основе шаблона.
Установка значений по умолчанию с помощью файла конфигурации
Значения по умолчанию можно настроить для определенных параметров с помощью файла конфигурации пользователя. Когда расширение Cookiecutter обнаруживает файл конфигурации пользователя, он перезаписывает значения по умолчанию шаблона со значениями файла конфигурации. Дополнительные сведения об этом поведении см. в разделе "Конфигурация пользователя" документации по Cookiecutter.
Отказ от указанных задач
Некоторые шаблоны определяют определенные задачи Visual Studio, выполняемые после создания кода. К общим задачам относятся открытие веб-браузера, открытие файлов в редакторе и установка зависимостей. Когда шаблон идентифицирует определенные задачи, в список параметров добавляется дополнительные задачи по параметру завершения . Этот параметр можно настроить, чтобы отказаться от указанных задач Visual Studio.
Создание кода из шаблонов
После настройки параметров шаблона вы будете готовы к созданию файлов проекта и созданию кода.
В диалоговом окне отображается кнопка после списка параметров. Текст кнопки зависит от шаблона. Вы можете увидеть создание и открытие папки, добавление в решение и т. д.
На странице "Параметры" нажмите кнопку, которая следует списку параметров, например "Создать и открыть папку" или "Добавить в решение".
Cookiecutter создает код. Если выходная папка не пуста, отобразится предупреждение.
Если вы знакомы с выходными данными шаблона и не возражаете против перезаписи файлов, нажмите кнопку "ОК ", чтобы закрыть предупреждение.
В противном случае нажмите кнопку "Отмена", укажите пустую папку и скопируйте созданные файлы в папку выходных данных nonempty.
После успешного создания файлов cookiecutter Visual Studio открывает файлы проекта шаблона в Обозреватель решений.
Настройка параметров cookiecutter
Выберите Инструменты>Параметры>Cookiecutter, чтобы увидеть доступные параметры Cookiecutter.
Вариант | Описание |
---|---|
Проверка обновленных шаблонов | Определяет, автоматически ли cookiecutter проверка online для обновлений установленных шаблонов. |
Рекомендуемый URL-адрес веб-канала | Расположение файла веб-канала рекомендуемых шаблонов. Расположение может быть URL-адресом или путем к локальному файлу. Если не указывать значение в этом поле, будет использоваться веб-канал по умолчанию, который курирует корпорация Майкрософт. Веб-канал предоставляет простой список расположений шаблона, разделенных новыми строками. Чтобы запросить изменения для курируемого веб-канала, необходимо запросить источник на GitHub. |
Показать справку | Данный параметр управляет видимостью панели со справкой в верхней области окна Cookiecutter. |
Оптимизация шаблонов Cookiecutter для Visual Studio
Расширение Cookiecutter для Visual Studio поддерживает шаблоны, созданные для Cookiecutter версии 1.4. Дополнительные сведения о создании шаблонов Cookiecutter см. в документации по Cookiecutter.
Отрисовка по умолчанию переменных шаблона зависит от типа данных (строковый тип данных или список).
- Строка: Тип данных String использует метку для имени переменной, текстовое поле для ввода значения и подложку, отображающую значение по умолчанию. Подсказка в текстовом поле отображает значение по умолчанию.
- Список: тип данных списка использует метку для имени переменной и поле со списком для выбора значения. Подсказка в поле со списком отображает значение по умолчанию.
Вы можете улучшить отрисовку, указав другие метаданные в файле cookiecutter.json , относящееся к Visual Studio (и игнорируется интерфейсом командной строки cookiecutter). Эти свойства необязательны.
Свойство | Description |
---|---|
label |
Задает текст, отображаемый над редактором переменной, а не имя переменной. |
description |
Задает подсказку, отображаемую в элементе управления редактирования, а не значение по умолчанию для этой переменной. |
url |
Изменяет метку в гиперссылку с подсказкой, отображающей URL-адрес. Если вы щелкните гиперссылку, откроется пользовательский браузер по умолчанию с этим URL-адресом. |
selector |
Позволяет настроить редактор для переменной. В настоящее время поддерживаются следующие селекторы: - string : стандартное текстовое поле, заданное по умолчанию для строк; - list : стандартное поле со списком, заданное по умолчанию для списков; - yesno : поле со списком, чтобы выбрать между y и n для строк; - odbcConnection : текстовое поле с кнопкой многоточия (...), которая открывает диалоговое окно подключения к базе данных. |
В следующем примере показано, как задать свойства отрисовки:
{
"site_name": "web-app",
"python_version": ["3.5.2"],
"use_azure": "y",
"_visual_studio": {
"site_name": {
"label": "Site name",
"description": "E.g. <site-name>.azurewebsites.net (can only contain alphanumeric characters and `-`)"
},
"python_version": {
"label": "Python version",
"description": "The version of Python to run the site on"
},
"use_azure" : {
"label": "Use Azure",
"description": "Include Azure deployment files",
"selector": "yesno",
"url": "https://azure.microsoft.com"
}
}
}
Выполнение задач Visual Studio
Cookiecutter имеет функцию post-Generate Hooks , которая позволяет запускать произвольный код Python после создания файлов. Хотя эта функция является гибкой, она не позволяет легко получить доступ к Visual Studio.
Эту функцию можно использовать для открытия файла в редакторе Visual Studio или в веб-браузере. Вы также можете активировать пользовательский интерфейс Visual Studio, который предложит пользователю создать виртуальную среду и установить требования к пакету.
Чтобы разрешить эти сценарии, Visual Studio ищет расширенные метаданные в файле cookiecutter.json . Он ищет команды, выполняемые после того, как пользователь открывает созданные файлы в Обозреватель решений или после добавления файлов в существующий проект. (Опять же, пользователь может отказаться от выполнения задач, очищая Выполните дополнительные задачи при параметре шаблона завершения .)
В следующем примере показано, как задать расширенные метаданные в файле cookiecutter.json :
"_visual_studio_post_cmds": [
{
"name": "File.OpenFile",
"args": "{{cookiecutter._output_folder_path}}\\readme.txt"
},
{
"name": "Cookiecutter.ExternalWebBrowser",
"args": "https://learn.microsoft.com"
},
{
"name": "Python.InstallProjectRequirements",
"args": "{{cookiecutter._output_folder_path}}\\dev-requirements.txt"
}
]
Укажите команды по имени и используйте нелокализованное (английский) имя для работы с локализованными установками Visual Studio. Используйте командное окно Visual Studio для проверки и обнаружения имен команд.
Если вы хотите передать один аргумент, укажите аргумент в виде строки, как показано для name
метаданных в предыдущем примере.
Если не нужно передавать аргумент, оставьте значение пустой строкой или опустите его из JSON-файла:
"_visual_studio_post_cmds": [
{
"name": "View.WebBrowser"
}
]
Для нескольких аргументов используйте массив. Для коммутаторов разделите переключатель и его значение на отдельные аргументы и используйте правильный кавык, как показано в этом примере:
"_visual_studio_post_cmds": [
{
"name": "File.OpenFile",
"args": [
"{{cookiecutter._output_folder_path}}\\read me.txt",
"/e:",
"Source Code (text) Editor"
]
}
]
Аргументы могут содержать ссылки на другие переменные Cookiecutter. В предыдущем примере внутренняя _output_folder_path
переменная используется для формирования абсолютного пути к созданию файлов.
Эта Python.InstallProjectRequirements
команда работает только при добавлении файлов в существующий проект. Это ограничение связано с тем, что эта команда обрабатывается проектом Python в обозревателе решений, а в обозревателе решений - в представлении папок отсутствует проект для получения сообщения.
Устранение неполадок с шаблоном
В следующих разделах приведены советы по устранению неполадок в среде Python и коде при работе с Cookiecutter.
Ошибка при загрузке шаблона
Некоторые шаблоны могут использовать недопустимые типы данных в файле cookiecutter.json , например логическое значение. Эти экземпляры можно сообщить автору шаблона, выбрав ссылку "Проблемы " в области сведений о шаблоне.
Не удалось выполнить сценарий обработчика
Некоторые шаблоны могут использовать скрипты после создания, несовместимые с пользовательским интерфейсом Cookiecutter. Например, скрипты, запрашивающие пользователя для ввода, могут завершиться ошибкой из-за отсутствия консоли терминала.
Сценарий перехватчика не поддерживается в Windows
Если файл скрипта после публикации .sh, он может не быть связан с приложением на компьютере Windows. Может появиться диалоговое окно Windows, чтобы найти совместимое приложение в магазине Windows.
Шаблоны с распространенными проблемами
Вы можете узнать, имеет ли шаблон известные проблемы, используя ссылку "Проблемы" в сводке шаблона в файле Cookiecutter Обозреватель:
Ссылка открывает страницу проблем GitHub для шаблона: