Поделиться через


Начало работы с 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 (добавление, фиксация, принудительная отправка, извлечение), встроенными непосредственно в пользовательский интерфейс.

  1. Скачивание и установка VS Code для Windows. VS Code также доступен для Linux, но подсистема Windows для Linux не поддерживает приложения с графическим пользовательским интерфейсом, поэтому нам нужно установить его в Windows. Не волнуйтесь, вы по-прежнему сможете выполнить интеграцию с командной строкой и инструментами Linux с помощью расширения Remote — WSL.

  2. Установите расширение 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.

  1. Закройте VS Code и откройте Ubuntu 18.04 (командная строка WSL), перейдя в меню "Пуск " (значок windows в нижней левой части) и введя "Ubuntu 18.04".

  2. В командной строке Ubuntu перейдите к папке, в которую нужно поместить проект, и создайте для нее каталог: mkdir HelloWorld.

Терминал Ubuntu

Совет

Важно помнить, что при использовании подсистема 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.

  1. Убедитесь, что Python3 уже установлен, открыв терминал Ubuntu и введя: python3 --version. Вы должны увидеть номер версии Python. Если вам нужно обновить версию Python, сначала обновите версию Ubuntu, введя: sudo apt update && sudo apt upgrade, а затем обновите Python с помощью sudo apt upgrade python3.

  2. Установите pip, введя: sudo apt install python3-pip. Pip позволяет устанавливать дополнительные пакеты, которые не входят в стандартную библиотеку Python, и управлять ими.

  3. Установите venv, введя: sudo apt install python3-venv.

Создание виртуальной среды

Использование виртуальных сред — рекомендуемая лучшая методика для проектов разработки Python. Создав виртуальную среду, можно изолировать средства проекта и избежать конфликтов версий с инструментами для других проектов. Например, вы можете поддерживать старый веб-проект, который требует веб-платформы Django 1.2, но затем захватывающий новый проект поставляется вместе с Django 2.2. Если вы обновляете Django глобально, за пределами виртуальной среды, позже вы можете столкнуться с некоторыми проблемами управления версиями. В дополнение к предотвращению случайных конфликтов управления версиями, виртуальные среды позволяют устанавливать пакеты и управлять ими без прав администратора.

  1. Откройте терминал и выполните следующую команду в своей папке проекта HelloWorld, чтобы создать виртуальную среду с именем .venv: python3 -m venv .venv.

  2. Введите 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 в качестве интегрированной среды разработки. Подробнее.

  1. Откройте папку проекта в VS Code из терминала Ubuntu, введя: code . (с помощью "..." VS Code открывает текущую папку).

  2. Из Защитника Windows предупреждение системы безопасности, в котором нужно выбрать "Разрешить доступ". После открытия VS Code вы увидите индикатор узла удаленного подключения в левом нижнем углу, чтобы узнать, что вы редактируете в WSL: Ubuntu-18.04.

    Индикатор

  3. Закройте терминал Ubuntu. В дальнейшем мы будем использовать терминал WSL, интегрированный в VS Code.

  4. Откройте терминал WSL в VS Code, нажав Ctrl+` (используя символ обратного апострофа) или выбрав Представление>Терминал. После чего откроется командная строка bash (WSL), открытая в папке проекта, путь к которой вы создали в терминале Ubuntu.

    VS Code с терминалом WSL

Установка расширения Microsoft Python

Возможно, потребуется установить расширения VS Code для установки WSL. Некоторые расширения, уже установленные локально в VS Code, не будут автоматически доступны. Подробнее.

  1. Откройте окно расширения VS Code с помощью CTRL+SHIFT+X (или используйте меню, чтобы перейти к Вид>Расширения).

  2. В верхнем поле Поиск расширений в Marketplace, введите: Python.

  3. Найдите Python (ms-python.python) по расширению Майкрософт и нажмите кнопку "Установить в WSL": [имя распространения] .

  4. После завершения установки расширения появится 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.

  1. Откройте окно проводника VS Code, введя Ctrl+Shift+E (или воспользуйтесь меню для перехода к Представление>Обозреватель).

  2. Если он еще не открыт, откройте встроенный терминал WSL, введя ctrl+SHIFT+' и убедитесь, что текущий каталог — это папка проекта Python HelloWorld .

  3. Создайте файл python, введя: touch test.py. Вы должны увидеть только что созданный файл, который отобразится в окне проводника в папках .venv и .vscode уже в вашем каталоге проекта.

  4. Выберите в окне обозревателя только что созданный файл test.py, чтобы открыть его в VS Code. Поскольку .py в имени файла определяет для VS Code, что это файл Python, ранее загруженное расширение Python автоматически выберет и загрузит интерпретатор Python, который будет отображаться в нижней части окна VS Code.

    Выбор интерпретатора Python в VS Code

  5. Вставьте этот код Python в файл test.py, после чего сохраните файл (Ctrl+S):

    print("Hello World")
    
  6. Чтобы запустить только что созданную программу 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.

  1. Откройте Ubuntu 18.04 (командная строка WSL), перейдя в меню "Пуск " (значок нижнего левого окна Windows) и введя "Ubuntu 18.04".

  2. Создайте каталог для проекта: mkdir HelloWorld-Flask, а затем cd HelloWorld-Flask, чтобы войти в каталог.

  3. Создайте виртуальную среду, чтобы установить средства проекта: python3 -m venv .venv

  4. Откройте проект HelloWorld-Flask в VS Code, введя команду: code .

  5. Откройте встроенный терминал WSL (bash) в VS Code, введя Ctrl+Shift+` (папка проекта HelloWorld-Flask уже должна быть выбрана). Закройте командную строку Ubuntu, поскольку двигаясь вперед мы будем работать в терминале WSL, интегрированном с VS Code

  6. Активируйте виртуальную среду, созданную на шаге 3 с помощью терминала Bash в VS Code: source .venv/bin/activate. При срабатывании вы должны увидеть (.venv) перед командной строкой.

  7. Установите Flask в виртуальной среде, введя: python3 -m pip install flask. Убедитесь, что он установлен, введя: python3 -m flask --version.

  8. Создайте новый файл для кода Python: touch app.py

  9. Откройте файл app.py в проводнике VS Code (Ctrl+Shift+E, а затем выберите файл app.py). Это приведет к выбору интерпретатора расширением Python. По умолчанию это Python 3.6.8 64-bit ('.venv': venv). Обратите внимание, что оно также обнаружило виртуальную среду.

    Активированная виртуальная среда

  10. Добавьте код в app.py, чтобы импортировать Flask и создать экземпляр объекта Flask:

    from flask import Flask
    app = Flask(__name__)
    
  11. Кроме того, добавьте в app.py функцию, которая возвращает содержимое, в данном случае — простую строку. Используйте декоратор app.route Flask, чтобы сопоставить маршрут URL-адреса "/" с этой функцией:

    @app.route("/")
    def home():
        return "Hello World! I'm using Flask."
    

    Совет

    В зависимости от того, сколько разных маршрутов нужно сопоставлять с одной и той же функцией, в одной и той же функции можно использовать несколько декораторов, по одному на одну строку.

  12. Сохраните файл app.py (CTRL+S).

  13. Войдите в терминал, запустив приложение с помощью приведенной ниже команды.

    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)
    
  14. Visual Studio запустит уведомление о том, что приложение, работающее на порту 5000, доступно". Нажмите кнопку "Открыть в браузере". Кроме того, можно щелкнуть http://127.0.0.1:5000/ URL-адрес в терминале. В браузере должно появиться следующее сообщение:

    Hello World! Я пользуюсь Flask.

  15. Обратите внимание, что при посещении URL-адреса, например "/", в терминале отладки появится сообщение, показывающее HTTP-запрос:

    127.0.0.1 - - [19/Jun/2019 13:36:56] "GET / HTTP/1.1" 200 -
    
  16. Закройте приложение, используя в окне терминала команду 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.

  1. Откройте Ubuntu 18.04 (командная строка WSL), перейдя в меню "Пуск " (значок нижнего левого окна Windows) и введя "Ubuntu 18.04".

  2. Создайте каталог для проекта: mkdir HelloWorld-Django, а затем cd HelloWorld-Django, чтобы войти в каталог.

  3. Создайте виртуальную среду, чтобы установить средства проекта: python3 -m venv .venv

  4. Откройте проект HelloWorld-Django в VS Code, введя команду:code .

  5. Откройте встроенный терминал WSL (bash) в VS Code, введя Ctrl+Shift+` (папка проекта HelloWorld-Django уже должна быть выбрана). Закройте командную строку Ubuntu, поскольку двигаясь вперед мы будем работать в терминале WSL, интегрированном с VS Code

  6. Активируйте виртуальную среду, созданную на шаге 3 с помощью терминала Bash в VS Code: source .venv/bin/activate. При срабатывании вы должны увидеть (.venv) перед командной строкой.

  7. Установите Django в виртуальной среде с помощью команды: python3 -m pip install django. Убедитесь, что он установлен, введя: python3 -m django --version.

  8. Затем выполните следующую команду, чтобы создать проект 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, которое также изменяется в процессе разработки.
  9. Чтобы проверить проект 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.

  10. Visual Studio запустит уведомление о том, что приложение доступно через порт 8000. Нажмите кнопку "Открыть в браузере". http://127.0.0.1:8000/ Или Ctrl+click URL-адрес в окне вывода терминала, чтобы открыть браузер по умолчанию для этого адреса. Если Django установлен правильно и проект является допустимым, вы увидите страницу по умолчанию. В окне вывода терминала VS Code также отображается журнал сервера.

  11. Когда закончите, закройте окно браузера и остановите сервер в VS Code, используя Ctrl+C, как указано в окне вывода терминала.

  12. Теперь, чтобы создать приложение Django, запустите административную команду служебной программы startapp в папке проекта (где находится manage.py):

    python3 manage.py startapp hello
    

    Команда создает папку с именем hello, содержащую несколько файлов кода и одну вложенную папку. Из них часто приходится работать с views.py (содержит функции, определяющие страницы в веб-приложении) и models.py (содержит классы, определяющие объекты данных). Папка migrations используется служебной программой администрирования Django для управления версиями базы данных, как описано далее в этом руководстве. Существуют также файлы apps.py (конфигурация приложения), admin.py (для создания административного интерфейса) и tests.py (для тестов), которые здесь не рассматриваются.

  13. Измените hello/views.py в соответствии с приведенным ниже кодом, который создает одно представление для домашней страницы приложения:

    from django.http import HttpResponse
    
    def home(request):
        return HttpResponse("Hello, Django!")
    
  14. Создайте файл 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"),
    ]
    
  15. Папка 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")),
    ]
    
  16. Сохраните все измененные файлы.

  17. В окне терминала 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.

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