Начало работы с Python для разработки веб-приложений в Windows
Ниже приведено пошаговое руководство по началу работы с Python для веб-разработки в Windows с помощью подсистемы Windows для Linux (WSL).
Настройка среды разработки
При создании веб-приложений мы рекомендуем установить Python на WSL. Многие руководства и инструкции для разработки веб-приложений на Python написаны для пользователей Linux и поэтому они используют средства упаковки и установки на основе Linux. Большинство веб-приложений также развертываются в Linux, поэтому это обеспечит согласованность между рабочими средами и средами разработки.
Если вы используете Python не для разработки веб-приложений, мы рекомендуем установить Python непосредственно в Windows из Microsoft Store. WSL не поддерживает рабочих столов или приложения с графическим пользовательским интерфейсом (например, PyGame, Gnome, KDE и т. д.). В этих случаях установите и используйте Python непосредственно в Windows. Если вы не знакомы с Python, ознакомьтесь с нашим руководством: начало работы с Python в Windows для начинающих. Если вы заинтересованы в автоматизации распространенных задач в операционной системе, ознакомьтесь с нашим руководством. Начало работы с Python в Windows для сценариев и автоматизации. Для некоторых сложных сценариев вам может потребоваться скачать определенный выпуск Python непосредственно из python.org или рассмотреть возможность установки альтернативы, например Anaconda, Jython, PyPy, WinPython, IronPython и т. д. Мы рекомендуем использовать это только в том случае, если вы являетесь более продвинутым программистом Python с определенной причиной выбора альтернативной реализации.
Установка подсистемы Windows для Linux
WSL позволяет запускать среду командной строки GNU/Linux, интегрированную непосредственно с Windows и вашими любимыми инструментами, такими как Visual Studio Code, Outlook и т. д. Мы обычно рекомендуем использовать WSL 2 для веб-разработки на Python.
Чтобы включить и установить WSL 2, см. документацию по установке WSL. Эти инструкции включают возможность выбора дистрибутива Linux (например, Ubuntu).
Установив WSL и дистрибутив Linux, откройте дистрибутив Linux (его можно найти в меню "Пуск" в Windows) и проверьте версию и кодовое имя с помощью команды lsb_release -dc
.
Мы рекомендуем не просто регулярно обновлять дистрибутив Linux, а сделать это сразу после установки. Так вы убедитесь в том, что у вас есть последние версии пакетов. Windows не обрабатывает это обновление автоматически. Чтобы обновить дистрибутив, используйте команду sudo apt update && sudo apt upgrade
.
Совет
Установите новый Терминал Windows из Microsoft Store. В нем вы можете использовать несколько вкладок (для быстрого перехода между несколькими командным строками Linux, командной строкой Windows, PowerShell, Azure CLI и т. д.), создавать пользовательские сочетания клавиш (для открытия и закрытия вкладок, копирования и вставки и т. п.), а также применять функцию поиска и настраивать пользовательские темы (цветовые схемы, стили и размеры шрифтов, а также фоновое изображение, размытие и прозрачность). Подробнее.
Настройка Visual Studio Code
Воспользуйтесь преимуществами IntelliSense, Linting, поддержки отладки, фрагментов кодаи модульного тестирования с помощью VS Code. VS Code хорошо интегрируется с подсистемой Windows для Linux, предоставляя встроенные терминалы для создания комплексного рабочего процесса между редактором кода и командной строкой, в дополнение к поддержке Git для управления версиями с общими командами Git (добавление, фиксация, принудительная отправка, извлечение), встроенными непосредственно в пользовательский интерфейс.
Скачивание и установка VS Code для Windows. VS Code также доступен для Linux, но подсистема Windows для Linux не поддерживает приложения с графическим пользовательским интерфейсом, поэтому нам нужно установить его в Windows. Не волнуйтесь, вы по-прежнему сможете выполнить интеграцию с командной строкой и инструментами Linux с помощью расширения Remote — WSL.
Установите расширение Remote — WSL в VS Code. Это позволит вам использовать WSL в качестве интегрированной среды разработки и обеспечит совместимость и путь к ней. Подробнее.
Внимание
Если у вас уже установлен VS Code, необходимо убедиться, что у вас есть выпуск 1.35 мая или более поздней версии, чтобы установить расширение WSL. Мы не рекомендуем использовать WSL в VS Code без расширения Remote-WSL, так как вы потеряете поддержку автоматического завершения, отладки, подстроки и т. д. Интересный факт: это расширение WSL устанавливается в $HOME/.vscode-server/extensions.
Создание нового проекта
Давайте создадим новый каталог проекта в файловой системе Linux (Ubuntu), который затем будет работать с приложениями и инструментами Linux с помощью VS Code.
Закройте VS Code и откройте Ubuntu 18.04 (командная строка WSL), перейдя в меню "Пуск " (значок windows в нижней левой части) и введя "Ubuntu 18.04".
В командной строке Ubuntu перейдите к папке, в которую нужно поместить проект, и создайте для нее каталог:
mkdir HelloWorld
.
Совет
Важно помнить, что при использовании подсистема Windows для Linux (WSL) теперь вы работаете между двумя разными файловыми системами: 1) файловой системой Windows и 2) файловой системой Linux (WSL), которая является Ubuntu для нашего примера. Обратите внимание на место установки пакетов и файлов хранения. Вы можете установить одну версию средства или пакета в файловой системе Windows и совершенно другую версию в файловой системе Linux. Обновление средства в файловой системе Windows не будет влиять на средство в файловой системе Linux и наоборот. WSL монтирует жесткие диски на вашем компьютере в папку /mnt/<drive>
дистрибутива Linux. Например, диск Windows C: подключается в /mnt/c/
. Вы можете получить доступ к файлам Windows из терминала Ubuntu и использовать приложения и инструменты Linux для этих файлов и наоборот. Для разработки веб-приложений Python мы рекомендуем работать в файловой системе Linux, поскольку большая часть веб-инструментов изначально написана для Linux и развернута в рабочей среде Linux. Это также позволит избежать смешанной формальной модели файловой системы (например, Windows не учитывает регистр в отношении имен файлов). Тем не менее, WSL теперь поддерживает переходы между файловыми системами Linux и Windows, поэтому вы можете размещать свои файлы на любой из них. Подробнее.
Установка Python, pip и venv
Ubuntu 18.04 LTS поставляется с уже установленным Python 3.6, но без некоторых из модулей, которые можно получить с другими установками Python. Нам по-прежнему потребуется установить pip — стандартный диспетчер пакетов для Python и venv — стандартный модуль, используемый для создания и управления облегченными виртуальными средами. Помните, что вам может потребоваться обновить дистрибутив Linux, чтобы получить последнюю версию, с помощью команды sudo apt update && sudo apt upgrade
.
Убедитесь, что Python3 уже установлен, открыв терминал Ubuntu и введя:
python3 --version
. Вы должны увидеть номер версии Python. Если вам нужно обновить версию Python, сначала обновите версию Ubuntu, введя:sudo apt update && sudo apt upgrade
, а затем обновите Python с помощьюsudo apt upgrade python3
.Установите pip, введя:
sudo apt install python3-pip
. Pip позволяет устанавливать дополнительные пакеты, которые не входят в стандартную библиотеку Python, и управлять ими.Установите venv, введя:
sudo apt install python3-venv
.
Создание виртуальной среды
Использование виртуальных сред — рекомендуемая лучшая методика для проектов разработки Python. Создав виртуальную среду, можно изолировать средства проекта и избежать конфликтов версий с инструментами для других проектов. Например, вы можете поддерживать старый веб-проект, который требует веб-платформы Django 1.2, но затем захватывающий новый проект поставляется вместе с Django 2.2. Если вы обновляете Django глобально, за пределами виртуальной среды, позже вы можете столкнуться с некоторыми проблемами управления версиями. В дополнение к предотвращению случайных конфликтов управления версиями, виртуальные среды позволяют устанавливать пакеты и управлять ими без прав администратора.
Откройте терминал и выполните следующую команду в своей папке проекта HelloWorld, чтобы создать виртуальную среду с именем .venv:
python3 -m venv .venv
.Введите
source .venv/bin/activate
, чтобы активировать виртуальную среду. При срабатывании вы должны увидеть (.venv) перед командной строкой. Теперь у вас есть автономная среда, готовая к написанию кода и установке пакетов. Завершив работу с виртуальной средой, введите следующую команду, чтобы отключить ее:deactivate
.
Совет
Мы рекомендуем создать виртуальную среду в каталоге, в котором будет размещен проект. В уникальных именах нет необходимости, так как каждый проект должен иметь собственный отдельный каталог, следовательно, и собственную виртуальную среду. Мы предлагаем использовать имя .venv для соблюдения соглашения Python. Некоторые инструменты (такие как pipenv) также по умолчанию имеют это имя, если вы устанавливаете их в каталог проекта. Вам не нужно использовать .env, поскольку это противоречит файлам определений переменных среды. Как правило, не рекомендуется использовать имена, "отделенные-пунктиром", так как вам не нужно ls
регулярное напоминание о существовании каталога. Мы также рекомендуем добавить .venv в файл .gitignore. (Вот Шаблон gitignore по умолчанию GitHub для Python для справки.) Дополнительные сведения о работе с виртуальными средами в VS Code см. в статье "Использование сред Python в VS Code".
Открытие окна терминала WSL в VS Code
VS Code использует расширение WSL (установленное ранее) для обработки подсистемы Linux как удаленного сервера. Это позволяет использовать WSL в качестве интегрированной среды разработки. Подробнее.
Откройте папку проекта в VS Code из терминала Ubuntu, введя:
code .
(с помощью "..." VS Code открывает текущую папку).Из Защитника Windows предупреждение системы безопасности, в котором нужно выбрать "Разрешить доступ". После открытия VS Code вы увидите индикатор узла удаленного подключения в левом нижнем углу, чтобы узнать, что вы редактируете в WSL: Ubuntu-18.04.
Закройте терминал Ubuntu. В дальнейшем мы будем использовать терминал WSL, интегрированный в VS Code.
Откройте терминал WSL в VS Code, нажав Ctrl+` (используя символ обратного апострофа) или выбрав Представление>Терминал. После чего откроется командная строка bash (WSL), открытая в папке проекта, путь к которой вы создали в терминале Ubuntu.
Установка расширения Microsoft Python
Возможно, потребуется установить расширения VS Code для установки WSL. Некоторые расширения, уже установленные локально в VS Code, не будут автоматически доступны. Подробнее.
Откройте окно расширения VS Code с помощью CTRL+SHIFT+X (или используйте меню, чтобы перейти к Вид>Расширения).
В верхнем поле Поиск расширений в Marketplace, введите: Python.
Найдите Python (ms-python.python) по расширению Майкрософт и нажмите кнопку "Установить в WSL": [имя распространения] .
После завершения установки расширения появится WSL: [имя распространения] — раздел "Установленные " в окне расширений VS Code, показывающий, что вы установили расширение Python.
Запуск простой программы Python
Python — это интерпретируемый язык и поддерживает различные типы интерпретаторов (Python2, Anaconda, PyPy и т. д.). VS Code должен по умолчанию использоваться интерпретатором, связанным с вашим проектом. Если у вас есть причина изменить его, выберите интерпретатор, отображаемый в синей строке в нижней части окна VS Code, или откройте палитру команд (CTRL+SHIFT+P) и введите команду Python: Выбрать интерпретатор. На экране появится список установленных интерпретаторов Python. Using Python environments in VS Code(Использование сред Python в VS Code).
Теперь мы создадим и запустим простую программу Python в качестве тестовой и убедимся, что выбрали правильный интерпретатор Python.
Откройте окно проводника VS Code, введя Ctrl+Shift+E (или воспользуйтесь меню для перехода к Представление>Обозреватель).
Если он еще не открыт, откройте встроенный терминал WSL, введя ctrl+SHIFT+' и убедитесь, что текущий каталог — это папка проекта Python HelloWorld .
Создайте файл python, введя:
touch test.py
. Вы должны увидеть только что созданный файл, который отобразится в окне проводника в папках .venv и .vscode уже в вашем каталоге проекта.Выберите в окне обозревателя только что созданный файл test.py, чтобы открыть его в VS Code. Поскольку .py в имени файла определяет для VS Code, что это файл Python, ранее загруженное расширение Python автоматически выберет и загрузит интерпретатор Python, который будет отображаться в нижней части окна VS Code.
Вставьте этот код Python в файл test.py, после чего сохраните файл (Ctrl+S):
print("Hello World")
Чтобы запустить только что созданную программу Python "Hello World", выберите файл test.py в окне обозревателя VS Code, затем щелкните файл правой кнопкой мыши, чтобы открыть меню параметров. Выберите пункт Run Python File in Terminal (Запустить файл Python в окне терминала). Или введите
python test.py
во встроенном окне терминала WSL, чтобы запустить программу "Hello World". Интерпретатор Python выведет "Hello World" в окне терминала.
Поздравляем. Теперь у вас есть все для создания и запуска программ Python! Теперь давайте попробуем создать приложение Hello World с двумя самыми популярными веб-платформами Python: Flask и Django.
Руководство по созданию Hello World на Flask
Flask представляет собой платформу веб-приложений для Python. Документация Flask содержит рекомендации по началу работы и более подробному руководству по созданию небольшого, но полного приложения.
Следуя приведенным ниже инструкциям, вы можете создать небольшое приложение Flask "Hello World" с помощью VS Code и WSL.
Откройте Ubuntu 18.04 (командная строка WSL), перейдя в меню "Пуск " (значок нижнего левого окна Windows) и введя "Ubuntu 18.04".
Создайте каталог для проекта:
mkdir HelloWorld-Flask
, а затемcd HelloWorld-Flask
, чтобы войти в каталог.Создайте виртуальную среду, чтобы установить средства проекта:
python3 -m venv .venv
Откройте проект HelloWorld-Flask в VS Code, введя команду:
code .
Откройте встроенный терминал WSL (bash) в VS Code, введя Ctrl+Shift+` (папка проекта HelloWorld-Flask уже должна быть выбрана). Закройте командную строку Ubuntu, поскольку двигаясь вперед мы будем работать в терминале WSL, интегрированном с VS Code
Активируйте виртуальную среду, созданную на шаге 3 с помощью терминала Bash в VS Code:
source .venv/bin/activate
. При срабатывании вы должны увидеть (.venv) перед командной строкой.Установите Flask в виртуальной среде, введя:
python3 -m pip install flask
. Убедитесь, что он установлен, введя:python3 -m flask --version
.Создайте новый файл для кода Python:
touch app.py
Откройте файл app.py в проводнике VS Code (
Ctrl+Shift+E
, а затем выберите файл app.py). Это приведет к выбору интерпретатора расширением Python. По умолчанию это Python 3.6.8 64-bit ('.venv': venv). Обратите внимание, что оно также обнаружило виртуальную среду.Добавьте код в app.py, чтобы импортировать Flask и создать экземпляр объекта Flask:
from flask import Flask app = Flask(__name__)
Кроме того, добавьте в app.py функцию, которая возвращает содержимое, в данном случае — простую строку. Используйте декоратор app.route Flask, чтобы сопоставить маршрут URL-адреса "/" с этой функцией:
@app.route("/") def home(): return "Hello World! I'm using Flask."
Совет
В зависимости от того, сколько разных маршрутов нужно сопоставлять с одной и той же функцией, в одной и той же функции можно использовать несколько декораторов, по одному на одну строку.
Сохраните файл app.py (CTRL+S).
Войдите в терминал, запустив приложение с помощью приведенной ниже команды.
python3 -m flask run
Это приведет к запуску сервера разработки Flask. Сервер разработки ищет app.py по умолчанию. При запуске Flask вы должны увидеть результат, аналогичный приведенному ниже.
(env) user@USER:/mnt/c/Projects/HelloWorld$ python3 -m flask run * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Visual Studio запустит уведомление о том, что приложение, работающее на порту 5000, доступно". Нажмите кнопку "Открыть в браузере". Кроме того, можно щелкнуть http://127.0.0.1:5000/ URL-адрес в терминале. В браузере должно появиться следующее сообщение:
Обратите внимание, что при посещении URL-адреса, например "/", в терминале отладки появится сообщение, показывающее HTTP-запрос:
127.0.0.1 - - [19/Jun/2019 13:36:56] "GET / HTTP/1.1" 200 -
Закройте приложение, используя в окне терминала команду CTRL+C.
Совет
Если вы хотите использовать имя файла, отличное от app.py, например program.py, определите переменную среды с именем FLASK_APP и установите ее значение для выбранного файла. Сервер разработки Flask использует значение FLASK_APP вместо файла по умолчанию app.py. Дополнительные сведения см. в документации Flask.
Поздравляем, вы создали веб-приложение Flask с помощью Visual Studio Code и подсистемы Windows для Linux! Более подробное руководство по использованию VS Code и Flask см. в разделе Руководство по Flask в Visual Studio Code.
Руководство по созданию Hello World на Django
Django представляет собой платформу веб-приложений для Python. В этом кратком руководстве вы создадите небольшое приложение "Hello World" Django с помощью VS Code и WSL.
Откройте Ubuntu 18.04 (командная строка WSL), перейдя в меню "Пуск " (значок нижнего левого окна Windows) и введя "Ubuntu 18.04".
Создайте каталог для проекта:
mkdir HelloWorld-Django
, а затемcd HelloWorld-Django
, чтобы войти в каталог.Создайте виртуальную среду, чтобы установить средства проекта:
python3 -m venv .venv
Откройте проект HelloWorld-Django в VS Code, введя команду:
code .
Откройте встроенный терминал WSL (bash) в VS Code, введя Ctrl+Shift+` (папка проекта HelloWorld-Django уже должна быть выбрана). Закройте командную строку Ubuntu, поскольку двигаясь вперед мы будем работать в терминале WSL, интегрированном с VS Code
Активируйте виртуальную среду, созданную на шаге 3 с помощью терминала Bash в VS Code:
source .venv/bin/activate
. При срабатывании вы должны увидеть (.venv) перед командной строкой.Установите Django в виртуальной среде с помощью команды:
python3 -m pip install django
. Убедитесь, что он установлен, введя:python3 -m django --version
.Затем выполните следующую команду, чтобы создать проект Django:
django-admin startproject web_project .
Команда
startproject
предполагает (с помощью.
в конце), что текущая папка является папкой проекта, и создает в ней приведенные ниже ресурсы.manage.py
: административная программа командной строки Django для проекта. Административные команды для проекта следует запускать с помощьюpython manage.py <command> [options]
.Будет создана вложенная папка
web_project
, которая содержит следующие файлы:__init__.py
: пустой файл, сообщающий Python, что эта папка является пакетом Python.wsgi.py
: точка входа для веб-серверов, совместимых с WSGI, для обслуживания проекта. Обычно этот файл остается без изменений, так как он предоставляет обработчики для рабочих веб-серверов.asgi.py
: точка входа для веб-серверов, совместимых с ASGI, для обслуживания проекта. Обычно этот файл остается без изменений, так как он предоставляет обработчики для рабочих веб-серверов.settings.py
: содержит параметры для проекта Django, которые изменяются в процессе разработки веб-приложения.urls.py
: содержит содержание проекта Django, которое также изменяется в процессе разработки.
Чтобы проверить проект Django, запустите сервер разработки Django с помощью команды
python3 manage.py runserver
. Сервер работает на стандартном порте 8000. В окне терминала должны отобразиться выходные данные, аналогичные приведенным ниже.Performing system checks... System check identified no issues (0 silenced). June 20, 2019 - 22:57:59 Django version 2.2.2, using settings 'web_project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
При первом запуске сервера он создает базу данных SQLite по умолчанию в файле
db.sqlite3
, который предназначен для целей разработки, но может использоваться в рабочей среде для малообъемных веб-приложений. Кроме того, встроенный веб-сервер Django предназначен только для целей локальной разработки. Однако, при развертывании на веб-узле, Django использует вместо этого веб-сервер узла. Модульwsgi.py
в проекте Django отвечает за подключение к рабочим серверам.Если вы хотите использовать порт, отличный от стандартного порта 8000, укажите номер порта в командной строке, например
python3 manage.py runserver 5000
.Visual Studio запустит уведомление о том, что приложение доступно через порт 8000. Нажмите кнопку "Открыть в браузере".
http://127.0.0.1:8000/
ИлиCtrl+click
URL-адрес в окне вывода терминала, чтобы открыть браузер по умолчанию для этого адреса. Если Django установлен правильно и проект является допустимым, вы увидите страницу по умолчанию. В окне вывода терминала VS Code также отображается журнал сервера.Когда закончите, закройте окно браузера и остановите сервер в VS Code, используя
Ctrl+C
, как указано в окне вывода терминала.Теперь, чтобы создать приложение Django, запустите административную команду служебной программы
startapp
в папке проекта (где находитсяmanage.py
):python3 manage.py startapp hello
Команда создает папку с именем
hello
, содержащую несколько файлов кода и одну вложенную папку. Из них часто приходится работать сviews.py
(содержит функции, определяющие страницы в веб-приложении) иmodels.py
(содержит классы, определяющие объекты данных). Папкаmigrations
используется служебной программой администрирования Django для управления версиями базы данных, как описано далее в этом руководстве. Существуют также файлыapps.py
(конфигурация приложения),admin.py
(для создания административного интерфейса) иtests.py
(для тестов), которые здесь не рассматриваются.Измените
hello/views.py
в соответствии с приведенным ниже кодом, который создает одно представление для домашней страницы приложения:from django.http import HttpResponse def home(request): return HttpResponse("Hello, Django!")
Создайте файл
hello/urls.py
, используя приведенное ниже содержимое. Файлurls.py
является местом, в котором вы указываете шаблоны для маршрутизации различных URL-адресов в соответствующие представления. Приведенный ниже код содержит один маршрут для сопоставления корневого URL-адреса приложения (""
) с функциейviews.home
, которую вы только что добавили вhello/views.py
.from django.urls import path from hello import views urlpatterns = [ path("", views.home, name="home"), ]
Папка
web_project
также содержит файлurls.py
, в котором фактически обрабатывается маршрутизация URL-адресов. Откройтеweb_project/urls.py
и измените его в соответствии с приведенным ниже кодом (при необходимости можно оставить полезные комментарии). Этот код запрашиваетhello/urls.py
приложения с помощьюdjango.urls.include
, который хранит маршруты приложения, содержащиеся в приложении. Такое разделение полезно, когда проект содержит несколько приложений.from django.contrib import admin from django.urls import include, path urlpatterns = [ path("", include("hello.urls")), ]
Сохраните все измененные файлы.
В окне терминала VS Code запустите сервер разработки с
python3 manage.py runserver
и откройте браузерhttp://127.0.0.1:8000/
, чтобы увидеть страницу, которая отображает "Hello, Django".
Поздравляем, вы создали веб-приложение Django с помощью VS Code и подсистемы Windows для Linux! Более подробное руководство по использованию VS Code и Django см. в разделе Руководство по Django в Visual Studio Code.
Дополнительные ресурсы
- Блоги разработчиков Майкрософт: Python: ознакомьтесь с последними обновлениями обо всех вещах Python в Майкрософт.
- Учебник по Python с VS Code: введение в VS Code в качестве среды Python, в первую очередь способ редактирования, запуска и отладки кода.
- Поддержка Git в VS Code. Узнайте, как использовать основы управления версиями Git в VS Code.
- Узнайте о новых функциях и улучшениях WSL 2: эта новая версия изменяет способ взаимодействия дистрибутивов Linux с Windows, повышение производительности файловой системы и добавление полной совместимости системных вызовов.
- Работа с несколькими дистрибутивами Linux в Windows: узнайте, как управлять несколькими различными дистрибутивами Linux на компьютере Windows.
Windows developer