Шаблоны проекта веб-приложений PythonPython web application project templates

Python в Visual Studio поддерживает разработку веб-проектов на платформах Bottle, Django и Flask с помощью шаблонов проектов и средства запуска отладки, которое можно настроить для работы с различными платформами.Python in Visual Studio supports developing web projects in Bottle, Flask, and Django frameworks through project templates and a debug launcher that can be configured to handle various frameworks. Эти шаблоны включают файл requirements.txt для объявления необходимых зависимостей.These templates include a requirements.txt file to declare the necessary dependencies. При создании проекта на основе одного из таких шаблонов в Visual Studio отобразится запрос на установку этих пакетов (см. раздел Установка необходимых компонентов для проекта далее в этой статье).When creating a project from one of these templates, Visual Studio prompts you to install those packages (see Install project requirements later in this article).

Для других платформ, например Pyramid, также можно использовать универсальный шаблон веб-проекта.You can also use the generic Web Project template for other frameworks such as Pyramid. В этом случае для шаблона не предусмотрена установка каких-либо платформ.In this case, no frameworks are installed with the template. Вместо этого в окружении проекта устанавливаются необходимые пакеты (см. статью о вкладке "Пакет" окна окружений Python).Instead, install the necessary packages into the environment you're using for the project (see Python environments window - Package tab).

Сведения о развертывании веб-приложения Python в Azure см. в статье Публикация в службу приложений Azure.For information on deploying a Python web app to Azure, see Publish to Azure App Service.

Использование шаблона проектаUse a project template

Чтобы создать проект на основе шаблона, последовательно выберите Файл > Создать > Проект.You create a project from a template using File > New > Project. Чтобы просмотреть шаблоны для веб-проектов, слева в диалоговом окне последовательно выберите Python > Интернет.To see templates for web projects, select Python > Web on the left side of the dialog box. Выберите шаблон по своему усмотрению, присвоив имена проекту и решению. Затем задайте параметры для каталога решения и репозитория Git и нажмите кнопку ОК.Then select a template of your choice, providing names for the project and solution, set options for a solution directory and Git repository, and select OK.

Диалоговое окно "Новый проект" веб-приложений

Универсальный шаблон Веб-проект, который упоминался ранее, содержит пустой проект Visual Studio без кода (подразумевается только проект Python).The generic Web Project template, mentioned earlier, provides only an empty Visual Studio project with no code and no assumptions other than being a Python project. Сведения о шаблоне Облачная служба Azure см. в статье Проекты облачных служб Azure для Python.For details on the Azure Cloud Service template, see Azure cloud service projects for Python.

Все другие шаблоны основаны на веб-платформах Bottle, Flask или Django и делятся на три общие группы, как описано в следующих разделах.All the other templates are based on the Bottle, Flask, or Django web frameworks, and fall into three general groups as described in the following sections. Приложения, созданные с помощью любого из этих шаблонов, содержат код, который обеспечивает локальное выполнение и отладку приложений.The apps created by any of these templates contain sufficient code to run and debug the app locally. Кроме того, каждый из них предоставляет необходимый объект приложения WSGI (python.org) для использования с рабочими веб-серверами.Each one also provides the necessary WSGI app object (python.org) for use with production web servers.

Пустая группаBlank group

С помощью всех шаблонов пустых веб-проектов для <платформа> создаются проекты с использованием большего или меньшего объема стандартного кода и необходимых зависимостей, объявленных в файле requirements.txt.All Blank <framework> Web Project templates create a project with more or less minimal boilerplate code and the necessary dependencies declared in a requirements.txt file.

ШаблонTemplate ОписаниеDescription
Пустой веб-проект BottleBlank Bottle Web Project В app.py создается минимальное приложение с домашней страницей для / и страницей /hello/<name>, на которой выводится <name>. Используется небольшой встроенный шаблон.Generates a minimal app in app.py with a home page for / and a /hello/<name> page that echoes <name> using a very short inline page template.
Пустой веб-проект DjangoBlank Django Web Project Создается проект Django с основной структурой веб-сайта Django, но без структуры приложений Django.Generates a Django project with the core Django site structure but no Django apps. Дополнительные сведения см. в статье о шаблонах Django и шаге 1 руководства по изучению Django.For more information, see Django templates and Learn Django Step 1.
Пустой веб-проект FlaskBlank Flask Web Project Создается минимальное приложение для вывода одной страницы "Hello World!"Generates a minimal app with a single "Hello World!" для /.page for /. Это приложение похоже на результат выполнения шагов в кратком руководстве: создание первого веб-приложения Python с помощью Visual Studio.This app is similar to the result of following the detailed steps in Quickstart: Use Visual Studio to create your first Python web app. См. также шаг 1 руководства по работе с Flask.Also see Learn Flask Step 1.

Веб-группаWeb group

С помощью всех шаблонов веб-проектов для <платформа> создаются начальные веб-приложения с идентичной конструкцией независимо от выбранной платформы.All <Framework> Web Project templates create a starter web app with an identical design regardless of the chosen framework. В приложении есть домашняя страница, страницы со сведениями и контактными данными, а также панель навигации и адаптивный макет, созданный на основе Bootstrap.The app has Home, About, and Contact pages, along with a nav bar and responsive design using Bootstrap. Все приложения соответствующим образом настроены для предоставления статических файлов (CSS, JavaScript и шрифты). Используется механизм шаблона страницы, соответствующий конкретной платформе.Each app is appropriately configured to serve static files (CSS, JavaScript, and fonts), and uses a page template mechanism appropriate for the framework.

ШаблонTemplate ОписаниеDescription
Веб-проект BottleBottle Web Project Создается приложение, статические файлы которого содержатся в папке static и обрабатываются с помощью кода в app.py.Generates an app whose static files are contained in the static folder and handled through code in app.py. Данные маршрутизации для отдельных страниц содержатся в routes.py, а шаблоны страниц — в папке views.Routing for the individual pages is contained in routes.py, and the views folder contains the page templates.
Веб-проект DjangoDjango Web Project Создается проект и приложение Django с тремя страницами, поддержкой аутентификации и базой данных SQLite (без моделей данных).Generates a Django project and a Django app with three pages, authentication support, and a SQLite database (but no data models). Дополнительные сведения см. в статье о шаблонах Django и шаге 4 руководства по изучению Django.For more information, see Django templates and Learn Django Step 4.
Веб-проект FlaskFlask Web Project Создается приложение, статические файлы которого содержатся в папке static.Generates an app whose static files are contained in the static folder. Маршрутизация обрабатывается с помощью кода во views.py. Шаблоны страниц, созданные с использованием механизма Jinja, содержатся в папке templates.Code in views.py handles routing, with page templates using the Jinja engine contained in the templates folder. Код запуска помещен в файл runserver.py.The runserver.py file provides startup code. См. шаг 4 руководства по работе с Flask.See Learn Flask Step 4.
Веб-проект Flask и JadeFlask/Jade Web Project Создается то же приложение, что и при использовании шаблона Веб-проект Flask, но с помощью расширения Jade для модуля создания шаблонов Jinja.Generates the same app as with the Flask Web Project template but using the Jade extension for the Jinja templating engine.

Группа опросаPolls group

С помощью шаблонов веб-проектов опроса для <платформа> создаются начальные веб-приложения, в которых пользователи смогут пройти опрос.The Polls <framework> Web Project templates create a starter web app through which users can vote on different poll questions. Каждое приложение основано на структуре шаблона веб-проекта, которая позволяет использовать базу данных для управления опросами и ответами пользователей.Each app builds upon the structure of the Web project templates to use a database to manage the polls and user responses. Эти приложения включают соответствующие модели данных и специальную страницу приложения (/seed), с помощью которой из файла samples.json загружается опрос.The apps include appropriate data models and a special app page (/seed) that loads polls from a samples.json file.

ШаблонTemplate ОписаниеDescription
Веб-проект опроса BottlePolls Bottle Web Project Создается приложение, которое можно запустить с выполняющейся в памяти базой данных, MongoDB или службой "Хранилище таблиц Azure", которая настраивается с помощью переменной среды REPOSITORY_NAME.Generates an app that can run against an in-memory database, MongoDB, or Azure Table Storage, which is configured using the REPOSITORY_NAME environment variable. Модели данных и код хранилища данных содержатся в папке models. В файл settings.py помещен код, который определяет используемое хранилище данных.The data models and data store code are contained in the models folder, and the settings.py file contains code to determine which data store is used.
Веб-проект опроса DjangoPolls Django Web Project Создаются проект и приложение Django с тремя страницами и базой данных SQLite.Generates a Django project and a Django app with three pages and a SQLite database. Шаблон включает настройки в интерфейсе администратора Django, которые позволяют прошедшему аутентификацию администратору создавать опросы и управлять ими.Includes customizations to the Django administrative interface to allow an authenticated administrator to create and manage polls. Дополнительные сведения см. в статье о шаблонах Django и шаге 6 руководства по изучению Django.For more information, see Django templates and Learn Django Step 6.
Веб-проект опроса FlaskPolls Flask Web Project Создается приложение, которое можно запустить с выполняющейся в памяти базой данных, MongoDB или службой "Хранилище таблиц Azure", которая настраивается с помощью переменной среды REPOSITORY_NAME.Generates an app that can run against an in-memory database, MongoDB, or Azure Table Storage, which is configured using the REPOSITORY_NAME environment variable. Модели данных и код хранилища данных содержатся в папке models. В файл settings.py помещен код, который определяет используемое хранилище данных.The data models and data store code are contained in the models folder, and the settings.py file contains code to determine which data store is used. В приложении применяется модуль Jinja для создания шаблонов страниц.The app uses the Jinja engine for page templates. См. шаг 5 руководства по работе с Flask.See Learn Flask Step 5.
Веб-проект опроса Flask и JadePolls Flask/Jade Web Project Создается то же приложение, что и при использовании шаблона Веб-проект опроса Flask, но с помощью расширения Jade для модуля создания шаблонов Jinja.Generates the same app as with the Polls Flask Web Project template but using the Jade extension for the Jinja templating engine.

Установка требований проектаInstall project requirements

При создании проекта из шаблона для конкретной платформы отображается диалоговое окно для установки необходимых пакетов с помощью pip.When creating a project from a framework-specific template, a dialog appears to help you install the necessary packages using pip. Чтобы при публикации веб-сайта были настроены правильные зависимости, для веб-проектов рекомендуется использовать виртуальную среду.We also recommend using a virtual environment for web projects so that the correct dependencies are included when you publish your web site:

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

Если используется система управления версиями, папка виртуального окружения обычно опускается, так как виртуальное окружение можно воссоздать только с помощью requirements.txt.If you're using source control, you typically omit the virtual environment folder as that environment can be recreated using only requirements.txt. Чтобы исключить папку, рекомендуем сначала выбрать вариант самостоятельной установки, показанный выше в окне с запросом, а затем отключить автоматическую фиксацию перед созданием виртуального окружения.The best way to exclude the folder is to first select the I will install them myself in the prompt shown above, then disable auto-commit before creating the virtual environment. Дополнительные сведения см. в шагах 1–2 и 1–3 руководства по изучению Django и шагах 1–2 и 1.3 руководства по изучению Flask.For details, see Learn Django Tutorial - Steps 1-2 and 1-3 and Learn Flask Tutorial - Steps 1-2 and 1-3.

Выполняя развертывание в службе приложений Microsoft Azure, нужно выбрать версию Python в качестве расширения сайта и установить пакеты вручную.When deploying to Microsoft Azure App Service, select a version of Python as a site extension and manually install packages. Кроме того, поскольку при развертывании из Visual Studio служба приложений Azure не устанавливает пакеты из файла requirements.txt автоматически, используйте сведения о конфигурации, приведенные на странице aka.ms/PythonOnAppService.Also, because Azure App Service does not automatically install packages from a requirements.txt file when deployed from Visual Studio, follow the configuration details on aka.ms/PythonOnAppService.

Облачные службы Microsoft Azure поддерживают файл requirements.txt.Microsoft Azure Cloud Services does support the requirements.txt file. Дополнительные сведения см. в статье Проекты облачных служб Azure для Python.See Azure cloud service projects for details.

ОтладкаDebugging

Когда вы запускаете отладку веб-проекта, Visual Studio запускает локальный веб-сервер со случайным портом и открывает страницу с указанным здесь адресом и портом в браузере по умолчанию.When a web project is started for debugging, Visual Studio starts a local web server on a random port and opens your default browser to that address and port. Чтобы указать дополнительные параметры, щелкните правой кнопкой мыши проект, выберите Свойства и откройте вкладку Веб-средство запуска:To specify additional options, right-click the project, select Properties, and select the Web Launcher tab:

Свойства веб-средства запуска для универсального веб-шаблона

Параметры группы Отладка:In the Debug group:

  • Параметры Пути поиска, Аргументы сценария, Аргументы интерпретатора и Путь к интерпретатору ничем не отличаются от используемых в режиме обычной отладки.Search Paths, Script Arguments, Interpreter Arguments, and Interpreter Path: these options are the same as for normal debugging.
  • URL-адрес для запуска — задает URL-адрес, который открывается в браузере.Launch URL: specifies the URL that is opened in your browser. По умолчанию для него используется значение localhost.It defaults to localhost.
  • Номер порта.  Это порт, который будет использоваться, если в URL-адресе не указан порт (по умолчанию Visual Studio автоматически выбирает порт).Port Number: the port to use if none is specified in the URL (Visual Studio selects one automatically by default). Этот параметр позволяет переопределить значение по умолчанию переменной среды SERVER_PORT, которое используется шаблонами для настройки порта, прослушиваемого локальным сервером отладки.This setting allows you to override the default value of the SERVER_PORT environment variable, which is used by the templates to configure the port the local debug server listens on.

Свойства, указанные в группах Команда сервера выполнения и Команда сервера отладки (последняя группа находится ниже в окне, показанном на рисунке), определяют, как будет запускаться веб-сервер.The properties in the Run Server Command and Debug Server Command groups (the latter is below what's shown in the image) determine how the web server is launched. Так как для многих платформ требуется использовать сценарий вне текущего проекта, можно настроить сценарий здесь и передать модуль автозагрузки как параметр.Because many frameworks require the use of a script outside of the current project, the script can be configured here and the name of the startup module can be passed as a parameter.

  • Команда — может содержать скрипт Python (файл *.py), имя модуля (как и в python.exe -m module_name) или одну строку кода (как и в python.exe -c "code").Command: can be a Python script (*.py file), a module name (as in, python.exe -m module_name), or a single line of code (as in, python.exe -c "code"). Значение в раскрывающемся списке указывает, какой из этих типов будет использоваться.The value in the drop-down indicates which of these types is intended.
  • Аргументы — содержимое этого поля передается в командной строке после команды.Arguments: these arguments are passed on the command line following the command.
  • Среда — разделенный символом новой строки список пар <NAME>=<VALUE>, определяющих переменные среды.Environment: a newline-separated list of <NAME>=<VALUE> pairs specifying environment variables. Эти переменные задаются после всех свойств, которые могут изменить среду, например номер порта или пути поиска, и поэтому могут перезаписать эти значения.These variables are set after all properties that may modify the environment, such as the port number and search paths, and so may overwrite these values.

Любое свойство проекта и любую переменную среды можно указать, используя синтаксис MSBuild, например $(StartupFile) --port $(SERVER_PORT).Any project property or environment variable can be specified with MSBuild syntax, for example: $(StartupFile) --port $(SERVER_PORT). $(StartupFile) — это относительный путь к файлу запуска, а {StartupModule} — импортируемое имя файла запуска.$(StartupFile) is the relative path to the startup file and {StartupModule} is the importable name of the startup file. $(SERVER_HOST) и $(SERVER_PORT) являются обычными переменными среды, автоматически задаваемые свойствами URL-адрес для запуска и Номер порта или с помощью свойства Среда.$(SERVER_HOST) and $(SERVER_PORT) are normal environment variables that are set by the Launch URL and Port Number properties, automatically, or by the Environment property.

Note

Значения в группе Команда сервера выполнения используются при выборе команды Отладка > Запуск сервера или нажатии клавиш CTRL+F5. Значения в группе Команда сервера отладки используются при выборе команды Отладка > Запустить сервер отладки или нажатии клавиши F5.Values in Run Server Command are used with the Debug > Start Server command or Ctrl+F5; values in the Debug Server Command group are used with the Debug > Start Debug Server command or F5.

Пример конфигурации BottleSample Bottle configuration

Шаблон веб-проекта Bottle содержит стандартный код, который выполняет необходимую настройку.The Bottle Web Project template includes boilerplate code that does the necessary configuration. Импортированное приложение Bottle может не содержать этот код, однако в этом случае следующие параметры запускают приложение с помощью установленного модуля bottle:An imported bottle app may not include this code, however, in which case the following settings launch the app using the installed bottle module:

  • Группа команды запуска сервера:Run Server Command group:

    • Команда: bottle (модуль);Command: bottle (module)
    • Аргументы: --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app.Arguments: --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • Группа команды отладки сервера:Debug Server Command group:

    • Команда: bottle (модуль);Command: bottle (module)
    • Аргументы: --debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app.Arguments --debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app

При отладке с помощью Visual Studio мы не рекомендуем использовать параметр --reload.The --reload option is not recommended when using Visual Studio for debugging.

Пример конфигурации приложения PyramidSample Pyramid configuration

В настоящее время для создания приложений Pyramid лучше всего использовать средство командной строки pcreate.Pyramid apps are currently best created using the pcreate command-line tool. После создания приложения его можно импортировать с помощью шаблона На основе существующего кода Python.Once an app has been created, it can be imported using the From existing Python code template. Затем настройте параметры в свойствах универсального веб-проекта.After doing so, select the Generic Web Project customization to configure the options. Эти параметры предполагают, что платформа Pyramid установлена в виртуальной среде в ..\env.These settings assume that Pyramid is installed into a virtual environment at ..\env.

  • Группа отладки:Debug group:

    • Порт сервера: 6543 (или заданный в INI-файлах)Server Port: 6543 (or whatever is configured in the .ini files)
  • Группа команды запуска сервера:Run Server Command group:

    • Команда: ..\env\scripts\pserve-script.py (сценарий);Command: ..\env\scripts\pserve-script.py (script)
    • Аргументы: Production.iniArguments: Production.ini
  • Группа команды отладки сервера:Debug Server Command group:

    • Команда: ..\env\scripts\pserve-script.py (сценарий);Command: ..\env\scripts\pserve-script.py (script)
    • Аргументы: Development.iniArguments: Development.ini

Tip

Скорее всего, потребуется настроить свойство Рабочий каталог проекта, так как приложения Pyramid обычно находятся в папке на один уровень ниже корневого каталога проекта.You likely need to configure the Working Directory property of your project because Pyramid apps are typically one folder below the project root.

Другие конфигурацииOther configurations

Если у вас есть параметры для другой платформы, которыми вы хотите поделиться, или вы хотите запросить параметры для такой платформы, откройте обращение в репозитории GitHub.If you have settings for another framework that you would like to share, or if you'd like to request settings for another framework, open an issue on GitHub.

Преобразование проекта в проект облачной службы AzureConvert a project to Azure Cloud Service

С помощью команды Преобразовать в проект облачной службы Microsoft Azure (см. рисунок ниже) можно добавить проект облачной службы в решение.The Convert to Microsoft Azure Cloud Service Project command (image below) adds a cloud service project to your solution. Этот проект включает параметры развертывания и конфигурации для используемых виртуальных машин и служб.This project includes the deployment settings and configuration for the virtual machines and services to be used. Используйте команду Опубликовать в облачном проекте, чтобы выполнить развертывание в облачных службах. С помощью команды Опубликовать в проекте Python можно по-прежнему выполнить развертывание на веб-сайтах.Use the Publish command on the cloud project to deploy to Cloud Services; the Publish command on the Python project still deploys to Web Sites. Дополнительные сведения см. в статье Проекты облачных служб Azure.For more information, see Azure cloud service projects.

Команда "Преобразовать в проект облачной службы Microsoft Azure"

См. такжеSee also