本文由葡萄城技术团队于原创并首发python
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。linux
上一篇咱们介绍了在Windows 10下进行初学者入门开发Python的指南,在本篇中咱们一块儿看一下看在Windows子系统(WSL)如何使用Python进行Web开发的按部就班指南。git
咱们建议在生成 web 应用程序时在 WSL 上安装 Python。 Python web 开发的许多教程和说明都是针对 Linux 用户编写的, 并使用基于 Linux 的打包和安装工具。 大多数 web 应用还部署在 Linux 上, 所以, 这将确保你的开发环境与生产环境之间的一致性。程序员
若是你使用的是 web 开发之外的其余内容, 则咱们建议你使用 Microsoft Store 直接在 Windows 10 上安装 Python。 WSL 不支持 GUI 桌面或应用程序 (如 PyGame、Gnome、KDE 等)。 在这些状况下, 请在 Windows 上直接安装并使用 Python。 若是你不熟悉 Python, 请参阅如下指南:开始在 Windows 上使用 Python。 若是你有兴趣自动执行操做系统上的常见任务, 请参阅如下指南:开始在 Windows 上使用 Python 进行脚本编写和自动化。 对于某些高级方案, 你可能须要考虑直接从python.org下载特定的 Python 版本, 或考虑安装备用项, 例如 Anaconda、Jython、PyPy、WinPython、IronPython 等。仅当你是更高级的 Python 程序员时, 才建议使用此方法, 具体缘由是选择替代实现。github
经过 WSL, 你能够运行 GNU/Linux 环境 (包括大多数命令行工具、实用工具和应用程序), 直接在 Windows 上进行修改, 并与 Windows 文件系统和经常使用工具 (如 Visual Studio Code) 彻底集成。 在启用 WSL 以前, 请检查你是否拥有最新版本的 Windows 10。web
若要在您的计算机上启用 WSL, 您须要:sql
转到 "开始" 菜单 (左下方的窗口图标), 键入 "打开或关闭 windows 功能", 而后选择指向 "控制面板" 的连接以打开 " windows 功能" 弹出菜单。 在列表中找到 "适用于 Linux 的 Windows 子系统" 并选中复选框以启用该功能。数据库
出现提示时, 请从新启动计算机。django
有多个 Linux 分发可在 WSL 上运行。 能够在 Microsoft Store 中查找和安装收藏夹。 建议从Ubuntu 18.04 LTS开始, 由于它是最新的、受欢迎的而且很受支持。flask
打开此Ubuntu 18.04 LTS连接, 打开 Microsoft Store, 而后选择 "获取"。 (这是一个至关大的下载, 可能须要一段时间才能安装。)
下载完成后, 在 "开始" 菜单中键入 "UBUNTU 18.04 LTS", 从 Microsoft Store 或 "启动" 中选择 "启动"。
首次运行分发时, 系统将要求你建立账户名称和密码。 在此以后, 默认状况下, 你将以此用户的身份自动登陆。 您能够选择任何用户名和密码。 它们不会影响你的 Windows 用户名。
能够经过输入如下内容来检查当前使用的 Linux 分发版: lsb_release -d
。 若要更新 Ubuntu 分发, 请使用sudo apt update && sudo apt upgrade
:。 建议按期更新以确保具备最新的包。 Windows 不会自动处理此更新。 有关适用于 Microsoft Store、替代安装方法或故障排除的其余 Linux 发行版的连接, 请参阅适用于 windows 10 的适用于 Linux 的 Windows 子系统安装指南。
经过使用 VS Code, 充分利用IntelliSense、 Linting、调试支持、代码片断和单元测试。 VS Code 与适用于 Linux 的 Windows 子系统完美集成, 提供内置终端在代码编辑器和命令行之间创建无缝的工做流, 此外还支持使用通用 Git进行版本控制的 git直接内置于 UI 中的命令 (添加、提交、推送、拉取)。
下载并安装适用于 Windows 的 VS Code。 VS Code 也适用于 Linux, 但适用于 Linux 的 Windows 子系统不支持 GUI 应用, 所以咱们须要在 Windows 上安装它。 不用担忧, 你仍可使用远程-WSL 扩展与 Linux 命令行和工具集成。
在 VS Code 上安装WSL 扩展。 这使你能够将 WSL 用做集成开发环境, 并将为你处理兼容性和路径。 了解详情。
重要
若是已安装 VS Code, 则须要确保将1.35 发布或更高版本, 以便安装远程 WSL 扩展。 建议不要在不使用 WSL 扩展的 VS Code 中使用 WSL, 由于将失去对自动完成、调试、linting 等的支持。趣味事实:此 WSL 扩展安装在 $HOME/.vscode-server/extensions。
让咱们在 Linux (Ubuntu) 文件系统上建立一个新的项目目录, 而后, 咱们将使用 VS Code 来处理 Linux 应用和工具。
转到 "开始" 菜单 (左下方的窗口图标), 而后键入如下内容, 关闭 VS Code 并打开 Ubuntu 18.04 (你的 WSL 命令行):"Ubuntu 18.04"。
在 Ubuntu 命令行中, 导航到要在其中放置项目的位置, 并为其建立目录: mkdir HelloWorld
。
提示
使用适用于 Linux 的 Windows 子系统 (WSL) 时, 要记住的重要一点是,你如今在两个不一样的文件系统之间工做:1) 你的 Windows 文件系统 (WSL) 是你的 Linux 文件系统 (), 它是示例的 Ubuntu。 须要注意安装包和存储文件的位置。 你能够在 Windows 文件系统中安装工具或包的一个版本, 并在 Linux 文件系统中安装彻底不一样的版本。 更新 Windows 文件系统中的工具将对 Linux 文件系统中的工具无效, 反之亦然。 WSL 会将计算机上的固定驱动器装载到 Linux发行版中的/mnt/文件夹下。 例如, Windows C: 驱动器安装在下/mnt/c/
。 能够从 Ubuntu 终端访问 Windows 文件, 并对这些文件使用 Linux 应用和工具, 反之亦然。 建议在适用于 Python web 开发的 Linux 文件系统中工做, 由于最初为 Linux 编写了大部分 web 工具, 并在 Linux 生产环境中进行了部署。 它还避免了混合文件系统语义 (如 Windows 在文件名上不区分大小写)。 也就是说, WSL 如今支持在 Linux 和 Windows 文件系统之间跳转, 所以你能够将文件托管在其中的系统上。 了解详情。 咱们也很高兴地分享了WSL2 即将推出的 Windows , 并会提供一些重大改进。 你如今能够在 Windows 预览体验内部版本18917上试用。
Ubuntu 18.04 LTS 附带了 Python 3.6, 但不附带一些你可能但愿在其余 Python 安装中得到的模块。 咱们仍须要安装pip、用于 Python 的标准包管理器和venv, 这是用于建立和管理轻型虚拟环境的标准模块。
打开 Ubuntu 终端并输入: python3 --version
, 确认已安装 Python3。 这应会返回 Python 版本号。 若是须要更新你的 Python 版本, 请首先输入: sudo apt update && sudo apt upgrade
, 而后使用sudo apt upgrade python3
更新 Python 来更新 Ubuntu 版本。
经过输入如下内容来sudo apt install python3-pip
安装 pip:。 Pip 容许你安装和管理不属于 Python 标准库的其余包。
输入如下内容安装 venv sudo apt install python3-venv
:。
对于 Python 开发项目, 建议使用虚拟环境。 经过建立虚拟环境, 你能够将项目工具隔离开来, 并避免与其余项目的工具存在版本冲突。例如, 你可能须要维护一个须要 Django 1.2 web 框架的旧 web 项目, 但随后使用 Django 2.2 就会得到使人兴奋的新项目。 若是在虚拟环境外全局更新 Django, 之后可能会遇到一些版本控制问题。 除了防止意外的版本控制冲突之外, 虚拟环境容许您在没有管理权限的状况下安装和管理包。
打开终端, 并在HelloWorld项目文件夹中使用如下命令建立名为的虚拟环境 。 venv: python3 -m venv .venv
。
若要激活虚拟环境, 请输入source .venv/bin/activate
:。 若是它有效, 你应该在命令提示符以前看到 (. venv) 。 如今, 你有了一个可供编写代码和安装包的独立环境。 完成虚拟环境后, 请输入如下命令将其停用: deactivate
。
提示
建议在计划项目的目录中建立虚拟环境。 因为每一个项目都应具备本身的单独目录, 所以, 每一个项目都具备本身的虚拟环境, 所以无需惟一命名。 咱们建议使用venv来遵循 Python 约定。 若是安装在项目目录中, 某些工具 (如 pipenv) 也默认为此名称。 不但愿使用与环境变量定义文件冲突的env。 一般不建议非点前导名称, 由于不须要ls
持续提醒您该目录存在。 咱们还建议将 . venv添加到 .gitignore 文件。 (下面是适用于Python 的 GitHub 默认 .gitignore 模板供参考。)有关在 VS Code 中使用虚拟环境的详细信息, 请参阅在 VS Code 中使用 Python 环境。
VS Code 使用远程 WSL 扩展 (以前安装) 将 Linux 子系统视为远程服务器。 这使你可使用 WSL 做为集成开发环境。 了解详情。
输入如下内容, 从 Ubuntu 终端 VS Code 打开项目文件夹: code .
("." 告诉 VS Code 打开当前文件夹)。
将从 Windows Defender 弹出一个安全警报, 并选择 "容许访问"。 打开 VS Code 后, 你应该会在左下角看到远程链接主机指示器, 让你知道在 WSL 上进行编辑:Ubuntu-18.04。
关闭 Ubuntu 终端。 向前移动将使用集成到 VS Code 中的 WSL 终端。
经过按Ctrl + ' (使用反撇号字符) 或选择 "查看 > 终端", 在 VS Code 中打开 WSL 终端。 这会打开一个 bash (WSL) 命令行, 此命令行打开到你在 Ubuntu 终端中建立的项目文件夹路径。
你将须要安装 WSL 的任何 VS Code 扩展。 已在 VS Code 本地安装的扩展将没法自动使用。 了解详情。
经过输入Ctrl + Shift + X打开 "VS Code 扩展" 窗口 (或使用菜单导航到 "视图 > " "扩展")。
在 "Marketplace 的顶级搜索扩展" 框中, 输入:Python。
经过 Microsoft 扩展查找 python (ms python python) , 并选择 "绿色安装" 按钮。
扩展安装完成后, 你将须要选择 "须要从新加载" 按钮。 这会重载 VS Code 并显示WSL:"VS Code 扩展" 窗口中的 "UBUNTU-18.04-已安装" 部分显示已安装 Python 扩展。
Python 是一种解释型语言, 支持不一样类型的 interpretors (Python二、Anaconda、PyPy 等)。 VS Code 应默认为与项目关联的解释器。若是有理由更改它, 请选择 "VS Code" 窗口底部蓝色栏中当前显示的解释器, 或打开命令面板(Ctrl + Shift + P), 而后输入如下命令 :选择解释器。 这会显示当前已安装的 Python 解释器列表。 详细了解如何配置 Python 环境。
让咱们建立并运行一个简单的 Python 程序做为测试, 并确保已选择正确的 Python 解释器。
经过输入Ctrl + Shift + E打开 "VS Code 文件资源管理器" 窗口 (或使用菜单导航到 "视图 > 资源管理器")。
若是它还没有打开, 请按Ctrl + Shift + ' 打开集成的 WSL 终端, 并确保已选中HelloWorld python 项目文件夹。
经过输入如下内容建立 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" 程序, 请在 "VS Code 资源管理器" 窗口中选择test.py文件, 而后右键单击该文件以显示选项的菜单。 选择 "在终端中运行 Python 文件" 。 或者, 在集成的 WSL 终端窗口中, 输入python test.py
: 运行 "Hello World" 程序。 Python 解释器会在终端窗口中打印 "Hello World"。
恭喜. 一切都已设置为建立和运行 Python 程序! 如今, 让咱们尝试使用两个最受欢迎的 Python web 框架建立 Hello World 应用:Flask 和 Django。
Flask是适用于 Python 的 web 应用程序框架。 在此 brief 教程中, 你将使用 VS Code 和 WSL 建立一个小型的 "Hello World" Flask 应用。
转到 "开始" 菜单 (左下方的窗口图标), 而后键入如下内容, 打开 Ubuntu 18.04 (你的 WSL 命令行):"Ubuntu 18.04"。
为项目建立目录: mkdir HelloWorld-Flask
, 而后cd HelloWorld-Flask
输入目录。
建立虚拟环境以安装项目工具:python3 -m venv .venv
输入如下命令, 在 VS Code 中打开HelloWorld Flask项目:code .
在 VS Code 中, 经过输入Ctrl + Shift + ' (您的HelloWorld-Flask项目文件夹应已选中) 打开集成 WSL 终端 (也称为 Bash)。 关闭 Ubuntu 命令行, 由于咱们将在与 VS Code 前进的 WSL 终端中进行工做。
使用 VS Code 中的 Bash 终端激活在步骤 #3 中建立的虚拟环境: source .venv/bin/activate
。 若是它有效, 你应该在命令提示符以前看到 (. venv)。
输入如下内容, 在虚拟环境中安装python3 -m pip install flask
Flask:。 经过输入如下内容来验证它是否python3 -m flask --version
已安装:。
为 Python 代码建立新文件:touch app.py
在 VS Code 的文件资源管理器 (Ctrl+Shift+E
, 而后选择 app.py 文件) 中打开 app.py 文件。 这会激活 Python 扩展以选择解释器。 它应默认为Python 3.6.8 64 位 (venv): venv) 。 请注意, 它还检测到你的虚拟环境。
在app.py中, 添加代码以导入 Flask 并建立 Flask 对象的实例:
from flask import Flask app = Flask(__name__)
11. 一样, 在app.py中, 添加一个返回内容的函数, 在本例中为简单字符串。 使用 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)
打开默认 web 浏览器到呈现的页面, 而后在终端中 http://127.0.0.1:5000/ 按Ctrl 并单击该 URL。 你应在浏览器中看到如下消息:
请注意, 在访问相似于 "/" 的 URL 时, 调试终端中会出现一条消息, 其中显示了 HTTP 请求:
127.0.0.1 - - [19/Jun/2019 13:36:56] "GET / HTTP/1.1" 200 -
在终端中使用Ctrl + C中止应用。
恭喜, 你已使用 Visual Studio Code 和适用于 Linux 的 Windows 子系统建立了 Flask web 应用程序! 有关使用 VS Code 和 Flask 的更深刻教程, 请参阅Visual Studio Code 中的 Flask 教程。
Django是适用于 Python 的 web 应用程序框架。 在此 brief 教程中, 你将使用 VS Code 和 WSL 建立一个小型的 "Hello World" Django 应用。
转到 "开始" 菜单 (左下方的窗口图标), 而后键入如下内容, 打开 Ubuntu 18.04 (你的 WSL 命令行):"Ubuntu 18.04"。
为项目建立目录: mkdir HelloWorld-Django
, 而后cd HelloWorld-Django
输入目录。
建立虚拟环境以安装项目工具:python3 -m venv .venv
输入如下命令, 在 VS Code 中打开HelloWorld DJango项目:code .
在 VS Code 中, 经过输入Ctrl + Shift + ' (您的HelloWorld-Django项目文件夹应已选中) 打开集成 WSL 终端 (也称为 Bash)。 关闭 Ubuntu 命令行, 由于咱们将在与 VS Code 前进的 WSL 终端中进行工做。
使用 VS Code 中的 Bash 终端激活在步骤 #3 中建立的虚拟环境: 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 的 web 服务器的入口点, 用于为你的项目提供服务。 一般将此文件保留原样, 由于它提供了用于生产 web 服务器的挂钩。settings.py
: 包含 Django 项目的设置, 你能够在开发 web 应用过程当中修改这些设置。urls.py
: 包含 Django 项目的目录, 你还能够在开发过程当中对其进行修改。若要验证 Django 项目, 请使用命令python3 manage.py runserver
启动 Django 的开发服务器。 服务器在默认端口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.
首次运行服务器时, 它会在文件db.sqlite3
中建立一个默认的 SQLite 数据库, 该数据库用于开发目的, 但可用于在生产中用于低容量 web 应用。 此外, Django 的内置 web 服务器仅用于本地开发目的。 可是, 当你部署到 web 主机时, Django 将改用主机的 web 服务器。 Django wsgi.py
项目中的模块负责挂钩到生产服务器。
若是要使用不一样于默认8000的端口, 请在命令行中指定端口号, 例如python3 manage.py runserver 5000
。
Ctrl+click
" http://127.0.0.1:8000/
终端输出" 窗口中的 URL, 用于将默认浏览器打开到该地址。 若是 Django 安装正确且项目有效, 你将看到默认页面。 "VS Code 终端输出" 窗口还显示服务器日志。
完成后, 请关闭浏览器窗口, 并使用Ctrl+C
中所述的在 VS Code 中中止服务器。
如今, 若要建立 Django 应用, 请在项目文件夹 ( startapp
其中manage.py
驻留) 中运行管理实用工具的命令:
python3 manage.py startapp hello
命令建立一个名hello
为的文件夹, 该文件夹包含多个代码文件和一个子文件夹。 在这些状况下, 常用views.py
(包含用于定义 web 应用中的页的函数) 和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 终端中, 使用python manage.py runserver
运行开发服务器, 并打开浏览器以http://127.0.0.1:8000/
查看呈现 "Hello, Django" 的页面。
恭喜, 你已使用 VS Code 和适用于 Linux 的 Windows 子系统建立了 Django web 应用程序! 有关使用 VS Code 和 Django 的更深刻教程, 请参阅Visual Studio Code 中的 Django 教程。