跳转至

第1章:初始设置

如果您已经读过《Django for Beginners》,那么其中的许多内容会是熟悉的,但还有关于安装 Django REST Framework 的额外步骤。

本章介绍了如何正确配置您的 Windows 或 macOS 计算机以进行 Django 项目。我们将从回顾命令行开始,这是一个强大的纯文本界面,开发人员广泛使用该界面来安装和配置软件项目。然后我们安装最新版本的 Python,学习如何创建专用的虚拟环境,并安装 Django。

作为最后一步,我们将探索使用 Git 进行版本控制,以及使用文本编辑器。到本章结束时,您将从头开始创建您的第一个 Django 和 Django REST Framework 项目。将来,您将能够在短短几秒钟内创建或修改任何 Django 项目。

命令行

命令行是一种纯文本界面,可以追溯到计算的最初 days。它是大多数计算机用户熟悉的基于鼠标或手指的图形用户界面的替代方案。日常计算机用户永远不需要使用命令行,但软件开发人员需要,因为某些任务只能用它来完成。这些包括运行程序、安装软件、使用 Git 进行版本控制,或连接到云中的服务器。通过一点练习,大多数开发人员发现命令行实际上是导航和控制计算机的更快、更强大的方式。

鉴于其最小的用户界面——只是一个空白屏幕和一个闪烁的光标——命令行对新手来说令人生畏。命令运行后通常没有反馈,如果不小心,可能会用单个命令擦除整个计算机的内容:不会弹出警告!因此,必须谨慎使用命令行。确保不要盲目复制和粘贴您在线上找到的命令;只对您不完全了解的任何命令依赖受信任的资源。

在实践中,多个术语用于指代命令行:命令行界面(CLI)、控制台、终端、Shell 或提示符。从技术上讲,终端是打开新窗口以访问命令行的程序,控制台是基于文本的应用程序,Shell 是在底层操作系统上运行命令的程序,提示符是键入和运行命令的地方。起初很容易对这些术语感到困惑,但它们本质上都意味着同一件事:命令行是我们在计算机上运行和执行纯文本命令的地方。

在 Windows 上,内置的终端和 Shell 都称为 PowerShell。要访问它,请找到屏幕底部的任务栏,在 Windows 按钮旁边,然后键入"powershell"以启动应用程序。它将打开一个新窗口,带有深蓝色背景和 > 提示符后的闪烁光标。

Shell

PS C:\Users\wsv>

在提示符之前是 PS,它指的是 PowerShell、Windows 操作系统的初始 C 目录,然后是 Users 目录和当前用户,在我的个人计算机上是 wsv。您的用户名显然会不同。此时,不要担心 > 提示符左侧的内容:它因每台计算机而异,以后可以自定义。将来将使用较短的提示符 > 作为 Windows。

在 macOS 上,内置终端被称为终端(Terminal)。它可以通过 Spotlight 打开:同时按 Command 和空格键,然后键入"terminal"。或者,打开一个新的 Finder 窗口,导航到 Applications 目录,向下滚动打开 Utilities 目录,然后双击名为 Terminal 的应用程序。这会打开一个新屏幕,默认情况下带有白色背景和 % 提示符后的闪烁光标。不要担心 % 提示符左侧的内容。它因计算机而异,以后可以自定义。

Shell

Wills-Macbook-Pro:~ wsv%

如果您的 macOS 提示符是 $ 而不是 %,则意味着您使用 Bash 作为 Shell。从 2019 年开始,macOS 从 Bash 切换到 zsh 作为默认 Shell。虽然本书中的大多数命令都可以互换使用,但如果您的计算机仍在使用 Bash,建议在线查找如何通过系统首选项更改为 zsh。

Shell 命令

有许多可用的 Shell 命令,但大多数开发人员一次又一次地依赖相同的少数命令,并根据需要查找更复杂的命令。

在许多情况下,Windows(PowerShell)和 macOS 的命令是相似的。例如,命令 whoami 在 Windows 上返回计算机名称/用户名,在 macOS 上只返回用户名。与所有 Shell 命令一样,键入命令本身,然后按回车键。请注意,# 符号表示注释,不会在命令行上执行。

Shell

# Windows
> whoami
wsv 2021/wsv

# macOS
% whoami
wsv

但有时,Windows 和 macOS 上的 Shell 命令完全不同。一个很好的例子是向控制台输出基本"Hello, World!"消息的命令。在 Windows 上,命令是 Write-Host,而在 macOS 上,命令是 echo

Shell

# Windows
> Write-Host "Hello, World!"
Hello, World!

# macOS
% echo "Hello, World!"
Hello, World!

命令行上的常见任务是在计算机文件系统内导航。在 Windows 和 macOS 上,命令 pwd(打印工作目录)显示当前位置。

Shell

# Windows
> pwd
Path
----
C:\Users\wsv

# macOS
% pwd
/Users/wsv

您可以将 Django 代码保存在任何您喜欢的地方,但为了方便起见,我们将代码放在桌面目录中。命令 cd(更改目录)后跟预期位置在两个系统上都有效。

Shell

# Windows
> cd onedrive\desktop
> pwd
Path
----
C:\Users\wsv\onedrive\desktop

# macOS
% cd desktop
% pwd
/Users/wsv/desktop

提示:Tab 键将自动完成命令,因此如果您键入 cd d 然后按 Tab,它将自动填充名称的其余部分。如果有不止两个以 d 开头的目录,请再次按 Tab 键循环浏览它们。

要创建新目录,请使用命令 mkdir,后跟名称。我们将在桌面上创建一个名为 code 的目录,然后在其中创建一个名为 setup 的新目录。

Shell

# Windows
> mkdir code
> cd code
> mkdir setup
> cd setup

# macOS
% mkdir code
% cd code
% mkdir setup
% cd setup

您可以通过查看桌面或运行命令 ls 来检查它是否已创建。

Shell

# Windows
> ls
setup

# macOS
% ls
setup

提示:clear 命令将清除终端中过去的命令和输出,因此您有一个干净的石板。tab 命令自动完成行,正如我们已经讨论过的。 键循环浏览以前的命令,以免您一遍又一遍地键入相同的内容。

要退出,您可以使用鼠标关闭终端,但黑客方式是改用 Shell 命令 exit。这在 Windows 上默认工作,但在 macOS 上需要更改终端首选项。在屏幕顶部,单击终端,然后从下拉菜单中单击首选项。单击顶部菜单中的配置文件,然后单击下面列表中的 Shell。有一个单选按钮用于"当 Shell 退出时:"。选择"关闭窗口"。

Shell

# Windows
> exit

# macOS
% exit

有点酷,对吧?通过练习,命令行是导航和操作计算机的远比使用鼠标更有效的方式。对于本书,您不需要成为命令行专家:每次我都会提供确切的说明来运行。但如果您好奇,可以在 ss64.com 上找到每个操作系统的完整 Shell 命令列表。

在 Windows 上安装 Python 3

在 Windows 上,Microsoft 在 Microsoft Store 中托管了 Python 3 的社区版本。在屏幕底部的搜索栏中键入"python",然后单击最佳匹配结果。

这将自动在 Microsoft Store 上启动 Python 3.10。单击蓝色的"获取"按钮下载它。

要确认 Python 已正确安装,请使用 PowerShell 打开新的终端窗口,然后键入 python --version

Shell

> python --version
Python 3.10.2

结果应该至少是 Python 3.10。然后键入 python 从命令行 Shell 打开 Python 解释器。

Shell

> python
Python 3.10.2 (tags/v3.10.2:a58ebcc, Jan 17 2022, 19:00:18)
[MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits", or "license" for more information.
>>>

在 Mac 上安装 Python 3

在 Mac 上,Python 网站上的官方安装程序是最好的方法。在新的浏览器窗口中,转到 Python 下载页面,然后单击"Download the latest version for Mac OSX"下方的按钮。在撰写本文时,那是 Python 3.10。该包将在您的下载目录中。双击它,启动 Python 安装程序,并按照提示进行操作。

要确认下载成功,请打开新的终端窗口并键入 python3 --version

Shell

% python3 --version
Python 3.10.2

结果应该至少是 3.10。然后键入 python3 打开 Python 解释器。

Shell

% python3
Python 3.10.2 (v3.10.2:a58ebcc701, Jan 13 2022, 14:50:16)
[Clang 13.0.0 (clang-1300.0.29.30)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Python 交互模式

从命令行键入 Windows 上的 python 或 macOS 上的 python3 将打开 Python 解释器,也称为 Python 交互模式。新提示符 >>> 表示您现在在 Python 内部,而不是命令行。如果您尝试任何我们之前运行的以前的 Shell 命令——cdlsmkdir——它们都会引发错误。将工作是实际的 Python 代码。例如,尝试 1 + 1print("Hello Python!"),确保每次都按 Enter 或 Return 键运行它们。

Shell

>>> 1 + 1
2
>>> print("Hello Python!")
Hello Python!

Python 的交互模式是节省时间的好方法,如果您想尝试一小段 Python 代码。但它有许多限制:您无法将工作保存在文件中,并且编写更长的代码片段很麻烦。因此,我们将大部分时间用于使用文本编辑器在文件中编写 Python 和 Django。

要从命令行退出 Python,您可以键入 exit() 和 Enter 键,或者在 Windows 上使用 Ctrl + z,在 macOS 上使用 Ctrl + d。

虚拟环境

安装最新版本的 Python 和 Django 是任何新项目的正确方法。但在现实世界中,现有项目依赖每个的旧版本是很常见的。考虑以下情况:项目 A 使用 Django 2.2,但项目 B 使用 Django 4.0?默认情况下,Python 和 Django 全局安装在计算机上,这意味着每次要在项目之间切换时安装和重新安装不同版本都很麻烦。

幸运的是,有一个简单的解决方案。虚拟环境允许您在同一台计算机上为每个 Python 项目创建和管理单独的环境。软件开发的许多领域都存在激烈争论,但为 Python 开发使用虚拟环境不是其中之一。您应该为每个新的 Python 项目使用一个专用的虚拟环境。

有多种方法可以实现虚拟环境,但最简单的是使用已经作为 Python 3 标准库一部分安装的 venv 模块。要尝试它,请导航到桌面上的现有 setup 目录。

Shell

# Windows
> cd onedrive\desktop\code\setup

# macOS
% cd ~/desktop/code/setup

要在此新目录中创建虚拟环境,请使用格式 python -m venv <name_of_env>(在 Windows 上)或 python3 -m venv <name_of_env>(在 macOS 上)。由开发人员选择适当的环境名称,但常见的选择是将其称为 .venv

创建虚拟环境后,必须激活它。在 Windows 上,必须设置执行策略以允许运行脚本。这是一种安全预防措施。Python 文档建议仅允许当前用户的脚本,这就是我们要做的。在 macOS 上,脚本没有类似的限制,因此可以直接运行 source .venv/bin/activate

以下是创建和激活名为 .venv 的新虚拟环境的完整命令:

Shell

# Windows
> python -m venv .venv
> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
> .venv\Scripts\Activate.ps1
(.venv) >

# macOS
% python3 -m venv .venv
% source .venv/bin/activate
(.venv) %

Shell 提示符现在具有环境名称 (.venv) 前缀,表示虚拟环境处于活动状态。在此位置内安装或更新的任何 Python 包都将限于活动虚拟环境。

要停用并离开虚拟环境,请键入 deactivate

Shell

# Windows
(.venv) > deactivate
>

# macOS
(.venv) % deactivate
%

Shell 提示符不再具有虚拟环境名称前缀,这意味着会话现在恢复正常。

安装 Django 和 Django REST Framework

现在 Python 已安装,并且我们知道如何使用虚拟环境,是时候安装 Django 和 Django REST Framework 了。在 setup 目录中,重新激活现有虚拟环境。

Shell

# Windows
> .venv\Scripts\Activate.ps1
(.venv) >

# macOS
% source .venv/bin/activate
(.venv) %

Django 托管在 Python 包索引(PyPI)上,这是大多数 Python 包的中心存储库。我们将使用 pip,最流行的包安装程序,它附带 Python 3。要安装最新版本的 Django,请使用命令 python -m pip install django~=4.0.0

比较运算符 ~= 确保随后针对 Django 的安全更新(如 4.0.1、4.0.2 等)自动安装。请注意,虽然可以使用较短版本的 pip install <package>,但最佳实践是使用较长但更明确的 python -m pip install <package> 形式,以确保使用正确版本的 Python。如果您的计算机上安装了多个版本的 Python,这可能是一个问题。

Shell

(.venv) > python -m pip install django~=4.0.0

您可能会看到一条 WARNING 消息,关于在运行这些命令后更新 pip。最好使用最新版本的软件,并删除每次使用 pip 时烦人的 WARNING 消息。您可以复制并粘贴建议的命令,或运行 python -m pip install --upgrade pip 以使用最新版本。

Shell

(.venv) > python -m pip install --upgrade pip

最新版本的 Django REST Framework 是 3.12.0。要安装它和任何未来的 3.12.x 更新,请使用以下命令:

Shell

(.venv) > python -m pip install djangorestframework~=3.13.0

命令 pip freeze 输出当前虚拟环境的内容。

Shell

(.venv) > pip freeze
asgiref==3.4.1
Django==4.0.0
djangorestframework==3.12.4
pytz==2021.3
sqlparse==0.4.2

我们的包含总共五个已安装的程序。Django 依赖 asgirefpytzsqlparse,它们在您安装 Django 时自动添加。

将虚拟环境的内容输出到名为 requirements.txt 的文件中是一种标准做法。这是一种跟踪已安装包的方法,也让其他开发人员可以在不同的计算机上重新创建虚拟环境。让我们现在通过使用 > 运算符来做到这一点。

Shell

(.venv) > pip freeze > requirements.txt

如果您查看 setup 目录,现在有一个名为 requirements.txt 的附加文件。如果您使用文本编辑器打开其内容,您会看到它与先前输出到命令行的五个程序匹配。

文本编辑器

命令行是我们为程序执行命令的地方,但文本编辑器是实际编写代码的地方。计算机不在乎您使用什么文本编辑器——最终结果只是代码——但好的文本编辑器可以为您提供有用的提示并为您捕获拼写错误。

有许多现代文本编辑器可用,但非常流行的是 Visual Studio Code,它是免费的、易于安装的,并享有广泛的流行。如果您尚未使用文本编辑器,请从官方网站下载并安装 VSCode。

一个可选但强烈推荐的额外步骤是利用 VSCode 上可用的大量扩展生态系统。在 Windows 上,导航到文件 -> 首选项 -> 扩展,或在 macOS 上导航到代码 -> 首选项 -> 扩展。这会启动扩展市场的搜索栏。键入"python",这将使 Microsoft 扩展作为第一个结果。安装它。

要添加的第二个扩展是 Black,它是 Python 代码格式化程序,已迅速成为 Python 社区中的默认设置。要安装 Black,请在 VSCode 中打开终端窗口,方法是转到页面顶部的终端 -> 新终端。在页面底部打开的新终端窗口中,键入 python -m pip install black。接下来,通过导航到 Windows 上的文件 -> 首选项 -> 设置或 macOS 上的代码 -> 首选项 -> 设置来打开 VSCode 设置。搜索"python formatting provider",然后从下拉选项中选择 black。然后搜索"format on save"并启用"Editor: Format on Save"。现在,每当保存 *.py 文件时,Black 都会自动格式化您的代码。

要确认这工作正常,请使用您的文本编辑器在位于桌面上的 setup 目录中创建一个名为 hello.py 的新文件,并使用单引号键入以下内容:

hello.py

print('Hello, World!')

保存时,应自动更新为使用双引号,这是 Black 的默认首选项:print("Hello, World!")。这意味着一切工作正常。

安装 Git

最后一步是安装 Git,这是一个对现代软件开发不可或缺的版本控制系统。使用 Git,您可以与其他开发人员协作,通过提交跟踪所有工作,即使您意外删除了重要内容,也可以还原到代码的任何以前版本!

在 Windows 上,导航到官方网站 [https://git-scm.com/,然后单击"下载"链接,该链接应为您的计算机安装](https://git-scm.com/`,然后单击"下载"链接,该链接应为您的计算机安装) proper 版本。保存文件,然后打开下载文件夹并双击该文件。这将启动 Git for Windows 安装程序。

单击"下一步"按钮,完成大多数早期默认设置,因为它们没问题,以后可以根据需要始终更新。然而,有两个例外:在"选择 Git 使用的默认编辑器"下,选择 VS Code 而不是 Vim。在"调整新存储库中初始分支的名称"部分中,选择使用"main"而不是"master"作为默认分支名称的选项。否则,建议的默认设置没问题,如果需要,以后总是可以调整。

要确认 Git 已安装在 Windows 上,请关闭所有当前的 Shell 窗口,然后打开一个新的窗口,该窗口将加载对我们的 PATH 变量的更改。键入 git --version,应显示它已安装。

Shell

# Windows
> git --version
git version 2.33.1.windows.1

在 macOS 上,通过 Xcode 安装 Git 目前是最简单的选项。要检查 Git 是否已安装在您的计算机上,请在新的终端窗口中键入 git --version

Shell

# macOS
% git --version

如果您没有安装 Git,弹出消息将询问您是否要将其作为"命令行开发工具"的一部分安装。选择"安装",这将加载 Xcode 及其命令行工具包。或者,如果由于某种原因您没有看到消息,请键入 xcode-select --install 以直接安装 Xcode。

请注意,Xcode 是一个非常大的包,因此初始下载可能需要一段时间。Xcode 主要用于构建 iOS 应用程序,但也包含 macOS 上需要的许多开发人员功能。下载完成后,关闭所有现有的终端 Shell,打开一个新窗口,然后键入 git --version 以确认安装工作。

Shell

# macOS
% git --version
git version 2.30.1 (Apple Git-130)

一旦 Git 安装在您的机器上,我们需要通过声明与所有 Git 提交关联的名称和电子邮件地址来进行一次性系统配置。我们还将默认分支名称设置为 main。在命令行 Shell 中,键入以下两行。确保使用您的姓名和电子邮件地址更新它们。

Shell

> git config --global user.name "Your Name"
> git config --global user.email "yourname@email.com"
> git config --global init.defaultBranch main

如果您愿意,以后可以随时通过键入具有相同名称或电子邮件地址的新名称或电子邮件地址来更改这些配置。

结论

配置新的软件开发环境一点也不有趣,即使对于经验丰富的程序员来说也是如此。但是,如果您到达这一点,一次性痛苦将在未来获得许多回报。我们现在了解了命令行、Python 交互模式,并安装了最新版本的 Python、Django 和 Django REST Framework。我们安装了 Git 并配置了文本编辑器。接下来,我们将了解 Web API,然后深入使用 Django 创建我们自己的 API。