设置 Django 开发环境
现在您已经了解了 Django 的用途,我们将向您展示如何在 Windows、Linux (Ubuntu) 和 macOS 上设置和测试 Django 开发环境——无论您使用的是哪种常见的操作系统,本文都应该为您提供开始开发 Django 应用程序所需的内容。
先决条件 | 了解如何使用终端/命令行以及如何在开发计算机的操作系统上安装软件包的基本知识。 |
---|---|
目标 | 在您的计算机上运行 Django (4.*) 的开发环境。 |
Django 开发环境概述
Django 使您能够非常轻松地设置自己的计算机,以便您可以开始开发 Web 应用程序。本节解释了开发环境为您提供了什么,并概述了一些设置和配置选项。本文的其余部分解释了在 Ubuntu、macOS 和 Windows 上安装 Django 开发环境的**推荐**方法,以及如何对其进行测试。
什么是 Django 开发环境?
开发环境是您本地计算机上安装的 Django,您可以在部署到生产环境之前使用它来开发和测试 Django 应用程序。
Django 本身提供的核心工具是一组用于创建和处理 Django 项目的 Python 脚本,以及一个简单的**开发 Web 服务器**,您可以使用它在计算机的 Web 浏览器上测试本地(即在您的计算机上,而不是在外部 Web 服务器上)Django Web 应用程序。
还有一些外围工具通常构成开发环境的一部分,我们这里将不介绍。这些包括诸如用于编辑代码的文本编辑器或 IDE、用于自动格式化的代码检查工具等等。我们假设您已经安装了文本编辑器。
Django 的设置选项有哪些?
Django 在安装和配置方式以及位置方面非常灵活。Django 可以
- 安装在不同的操作系统上。
- 从源代码、Python 包索引 (PyPi) 以及在许多情况下从主机计算机的包管理器应用程序中安装。
- 配置为使用多个数据库之一,这些数据库可能还需要单独安装和配置。
- 在主系统 Python 环境中或在单独的 Python 虚拟环境中运行。
每个选项都需要稍微不同的配置和设置。以下小节解释了您的一些选择。在本文的其余部分,我们将向您展示如何在少数几个操作系统上设置 Django,并且在本文档的其余部分将假设该设置。
注意:其他可能的安装选项在 Django 官方文档中有所介绍。我们链接到下面的相关文档。
支持哪些操作系统?
Django Web 应用程序几乎可以在任何可以运行 Python 3 编程语言的机器上运行:Windows、macOS、Linux/Unix、Solaris,仅举几例。几乎任何计算机都应该具有在开发过程中运行 Django 所需的性能。
在本文中,我们将提供 Windows、macOS 和 Linux/Unix 的说明。
应该使用哪个版本的 Python?
您可以使用目标 Django 版本支持的任何 Python 版本。对于 Django 5.0,允许的版本是 Python 3.10 到 3.12(请参阅常见问题解答:安装)。
Django 项目**建议**(并“正式支持”)使用支持的 Python 版本的最新可用版本。
我们可以在哪里下载 Django?
有三个地方可以下载 Django
- Python 包存储库 (PyPi),使用pip 工具。这是获取 Django 最新稳定版本的最佳方法。
- 使用来自您计算机的包管理器的版本。与操作系统捆绑在一起的 Django 发行版提供了一种熟悉的安装机制。但是请注意,打包版本可能非常旧,并且只能安装到系统 Python 环境中(这可能不是您想要的)。
- 从源代码安装。您可以从源代码获取并安装 Django 的最新前沿版本。对于初学者不建议这样做,但当您准备好开始回馈 Django 本身时需要这样做。
本文展示了如何从 PyPi 安装 Django,以获取最新稳定版本。
哪个数据库?
Django 正式支持 PostgreSQL、MariaDB、MySQL、Oracle 和 SQLite 数据库,并且有一些社区库为其他流行的 SQL 和 NoSQL 数据库提供不同级别的支持。我们建议您为生产和开发选择相同的数据库(尽管 Django 使用其对象关系映射器 (ORM) 抽象了许多数据库差异,但仍然存在潜在问题,最好避免)。
对于本文(以及本模块的大部分内容),我们将使用SQLite 数据库,它将其数据存储在一个文件中。SQLite 旨在用作轻量级数据库,并且无法支持高水平的并发性。但是,对于主要只读的应用程序来说,它是一个极好的选择。
注意:当您使用标准工具(django-admin)启动网站项目时,Django 会默认配置为使用 SQLite。当您入门时,这是一个绝佳的选择,因为它不需要任何额外的配置或设置。
在系统范围内安装还是在 Python 虚拟环境中安装?
安装 Python3 时,您会获得一个由所有 Python3 代码共享的单个全局环境。虽然您可以在环境中安装任何您喜欢的 Python 包,但您一次只能安装每个包的一个特定版本。
注意:安装到全局环境中的 Python 应用程序可能会相互冲突(例如,如果它们依赖于同一包的不同版本)。
如果将 Django 安装到默认/全局环境中,则您将只能在计算机上定位一个版本的 Django。如果您想创建新的网站(使用 Django 的最新版本),同时仍然维护依赖于旧版本的网站,这可能会成为问题。
因此,经验丰富的 Python/Django 开发人员通常在独立的**Python 虚拟环境**中运行 Python 应用程序。这使得可以在一台计算机上拥有多个不同的 Django 环境。Django 开发团队本身建议您使用 Python 虚拟环境!
本模块假设您已将 Django 安装到虚拟环境中,我们将在下面向您展示如何操作。
安装 Python 3
为了使用 Django,您必须在操作系统上安装 Python 3。您还需要Python 包索引工具——pip3——它用于管理(安装、更新和删除)Django 和其他 Python 应用程序使用的 Python 包/库。
本节简要介绍了如何检查存在哪些版本的 Python,以及根据需要安装新版本的方法,适用于 Ubuntu Linux 20.04、macOS 和 Windows 10。
注意:根据您的平台,您还可以从操作系统的包管理器或通过其他机制安装 Python/pip。对于大多数平台,您可以从https://www.pythonlang.cn/downloads/下载所需的安装文件,并使用相应的平台特定方法安装它们。
Ubuntu 22.04
Ubuntu Linux 22.04 LTS 默认包含 Python 3.10.12。您可以通过在 bash 终端中运行以下命令来确认这一点
python3 -V
# Output: Python 3.10.12
但是,您需要安装 Python 3 包(包括 Django)的 Python 包索引工具 (pip3) **默认情况下不可用**。您可以使用以下命令在 bash 终端中安装pip3
sudo apt install python3-pip
注意:Python 3.10 是Django 5.0 支持的最旧版本。对于本教程,您**无需**使用 Python 的最新版本,但如果您想使用,则互联网上有说明。
macOS
macOS 默认不包含 Python 3(旧版本中包含 Python 2)。您可以通过在终端中运行以下命令来确认这一点
python3 -V
这将显示 Python 版本号(表示已安装 Python 3),或者显示python3: command not found
(表示未找到 Python 3)。
您可以轻松地从python.org安装 Python 3(以及pip3 工具)
- 下载所需的安装程序
- 转到https://www.pythonlang.cn/downloads/macos/
- 下载与 Django 5.0 兼容的最新支持版本的稳定版本。(在撰写本文时,为 Python 3.11.8)。
- 使用Finder找到该文件,然后双击包文件。按照安装提示操作。
现在,您可以通过再次运行python3 -V
并检查 Python 版本号来确认安装是否成功。
您也可以通过列出可用包来类似地检查pip3 是否已安装
pip3 list
Windows 10 或 11
Windows 默认不包含 Python,但您可以轻松地从python.org安装它(以及pip3 工具)
- 下载所需的安装程序
- 转到https://www.pythonlang.cn/downloads/windows/
- 下载与 Django 5.0 兼容的最新支持版本的稳定版本。(在撰写本文时,为 Python 3.11.8)。
- 通过双击下载的文件并按照安装提示操作来安装 Python
- 确保选中“将 Python 添加到 PATH”框。
然后,您可以通过在命令提示符中输入以下文本来验证是否已安装 Python 3
py -3 -V
Windows 安装程序默认包含pip3(Python 包管理器)。您可以列出已安装的包,如下所示
py -3 -m pip list
注意:安装程序应该设置运行上述命令所需的一切。但是,如果您收到一条消息,提示找不到 Python,则可能是您忘记将其添加到系统路径。您可以重新运行安装程序,选择“修改”,然后在第二页上选中“将 Python 添加到环境变量”框。
调用 Python 3 和 pip3
您会注意到,在前面的部分中,我们使用不同的命令在不同的操作系统上调用 Python 3 和 pip。
如果您只安装了 Python 3(而不是 Python 2),则可以在任何操作系统上使用裸命令python
和pip
来运行 Python 和 pip。如果您的系统允许这样做,则在使用裸命令运行-V
时,您将获得一个版本“3”字符串,如下所示
python -V
pip -V
如果安装了 Python 2,则要在 Linux/macOS 上使用版本 3,应在命令前加上python3
和pip3
,在 Windows 上则应加上py -3
和py -3 -m pip
# Linux/macOS
python3 -V
pip3 -V
# Windows
py -3 -V
py -3 -m pip list
以下说明显示了平台特定的命令,因为它们适用于更多系统。
在 Python 虚拟环境中使用 Django
我们将用于创建虚拟环境的库是virtualenvwrapper(Linux 和 macOS)和virtualenvwrapper-win(Windows),它们都使用virtualenv工具。包装工具创建了一个一致的界面,用于在所有平台上管理接口。
安装虚拟环境软件
Ubuntu 虚拟环境设置
安装 Python 和 pip 后,您可以安装virtualenvwrapper(其中包含virtualenv)。官方安装指南可以在这里找到这里,或者按照以下说明操作。
使用pip3安装工具
sudo pip3 install virtualenvwrapper
然后将以下几行添加到 shell 启动文件末尾(这是您主目录中名为.bashrc的隐藏文件)。这些设置了虚拟环境应该存储的位置、开发项目目录的位置以及与该软件包一起安装的脚本的位置
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
注意:VIRTUALENVWRAPPER_PYTHON
和VIRTUALENVWRAPPER_VIRTUALENV_ARGS
变量指向 Python 3 的正常安装位置,而source /usr/local/bin/virtualenvwrapper.sh
指向virtualenvwrapper.sh
脚本的正常位置。如果在测试时virtualenv无法工作,则需要检查的一件事是 Python 和脚本是否位于预期位置(然后相应地更改启动文件)。
您可以使用命令which virtualenvwrapper.sh
和which python3
找到系统上的正确位置。
然后通过在终端中运行以下命令重新加载启动文件
source ~/.bashrc
此时,您应该会看到如下所示的一系列脚本正在运行
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postmkproject
# …
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/get_env_details
现在,您可以使用mkvirtualenv
命令创建一个新的虚拟环境。
macOS 虚拟环境设置
在 macOS 上设置virtualenvwrapper与在 Ubuntu 上几乎完全相同(同样,您可以按照官方安装指南或以下说明操作)。
如所示,使用pip安装virtualenvwrapper(并捆绑virtualenv)。
sudo pip3 install virtualenvwrapper
然后将以下几行添加到 shell 启动文件末尾(这些行与 Ubuntu 中的相同)。如果您使用的是zsh shell,则启动文件将是您主目录中名为.zshrc的隐藏文件。如果您使用的是bash shell,则它将是名为.bash_profile的隐藏文件。如果文件尚不存在,则可能需要创建它。
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
注意:VIRTUALENVWRAPPER_PYTHON
变量指向 Python 3 的正常安装位置,而source /usr/local/bin/virtualenvwrapper.sh
指向virtualenvwrapper.sh
脚本的正常位置。如果在测试时virtualenv无法工作,则需要检查的一件事是 Python 和脚本是否位于预期位置(然后相应地更改启动文件)。
例如,在 macOS 上的一次安装测试最终需要在启动文件中添加以下几行
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
export PROJECT_HOME=$HOME/Devel
source /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh
您可以使用命令which virtualenvwrapper.sh
和which python3
找到系统上的正确位置。
然后通过在终端中执行以下调用重新加载启动文件
source ~/.bash_profile
此时,您可能会看到一系列脚本正在运行(与 Ubuntu 安装中的脚本相同)。现在,您应该能够使用mkvirtualenv
命令创建一个新的虚拟环境。
注意:如果您在 Finder 中找不到要编辑的启动文件,也可以使用 nano 在终端中打开它。
假设您使用的是 bash,则命令如下所示
cd ~ # Navigate to my home directory
ls -la #List the content of the directory. You should see .bash_profile
nano .bash_profile # Open the file in the nano text editor, within the terminal
# Scroll to the end of the file, and copy in the lines above
# Use Ctrl+X to exit nano, choose Y to save the file.
Windows 虚拟环境设置
安装virtualenvwrapper-win比设置virtualenvwrapper更简单,因为您无需配置工具存储虚拟环境信息的位置(有一个默认值)。您只需在命令提示符中运行以下命令即可
py -3 -m pip install virtualenvwrapper-win
现在,您可以使用mkvirtualenv
命令创建一个新的虚拟环境
创建虚拟环境
安装virtualenvwrapper或virtualenvwrapper-win后,在所有平台上使用虚拟环境的方式都非常相似。
现在,您可以使用mkvirtualenv
命令创建一个新的虚拟环境。当此命令运行时,您将看到环境正在设置(您看到的内容在各个平台上略有不同)。命令完成后,新的虚拟环境将处于活动状态——您会看到这一点,因为提示符的开头将是括号中的环境名称(下面我们展示了 Ubuntu 的情况,但 Windows/macOS 的最后一行类似)。
mkvirtualenv my_django_environment
您应该会看到类似以下的输出
Running virtualenv with interpreter /usr/bin/python3 # … virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/t_env7/bin/get_env_details (my_django_environment) ubuntu@ubuntu:~$
现在您位于虚拟环境中,可以安装 Django 并开始开发。
注意:从现在起,在本文(以及本模块)中,请假设所有命令都在类似于我们上面设置的 Python 虚拟环境中运行。
使用虚拟环境
还有一些其他有用的命令您应该知道(在工具文档中还有更多,但这些是您经常使用的命令)
deactivate
- 退出当前 Python 虚拟环境workon
- 列出可用的虚拟环境workon name_of_environment
- 激活指定的 Python 虚拟环境rmvirtualenv name_of_environment
- 删除指定的环境。
安装 Django
创建虚拟环境并调用workon
进入后,您可以使用pip3安装 Django。
# Linux/macOS
python3 -m pip install django~=4.2
# Windows
py -3 -m pip install django~=4.2
您可以通过运行以下命令测试 Django 是否已安装(这只是测试 Python 是否可以找到 Django 模块)
# Linux/macOS
python3 -m django --version
# Windows
py -3 -m django --version
注意:如果上述 Windows 命令未显示 django 模块存在,请尝试
py -m django --version
在 Windows 中,Python 3脚本通过在命令前加上py -3
来启动,尽管这可能因您的具体安装而异。如果遇到任何命令问题,请尝试省略-3
修饰符。在 Linux/macOS 中,命令是python3
。
警告:本文档的其余部分使用Linux命令调用 Python 3(python3
)。如果您在Windows上工作,请将此前缀替换为:py -3
使用 Git 和 GitHub 进行源代码管理
源代码管理 (SCM) 和版本控制工具允许您可靠地存储和恢复源代码版本、尝试更改以及在需要时在您的实验和“已知良好代码”之间共享代码。
有许多不同的 SCM 工具,包括 git、Mercurial、Perforce、SVN(Subversion)、CVS(并发版本系统)等,以及 Bitbucket、GitHub 和 GitLab 等云 SCM 托管源。在本教程中,我们将把我们的代码托管在GitHub上,这是最受欢迎的基于云的源代码托管服务之一,并使用git工具在本地管理我们的源代码,并在需要时将其发送到 GitHub。
注意:使用 SCM 工具是良好的软件开发实践!这些说明提供了 git 和 GitHub 的基本介绍。要了解更多信息,请参阅学习 Git。
关键概念
Git(和 GitHub)使用存储库(“repo”)作为存储代码的顶级“容器”,其中每个 repo 通常只包含一个应用程序或模块的源代码。存储库可以是公开的,在这种情况下,代码对互联网上的每个人都可见,也可以是私有的,在这种情况下,它们仅限于拥有组织或用户帐户。
所有工作都在 repo 中特定代码的“分支”上完成。当您想将某些更改备份到分支时,您可以创建一个“提交”,它会存储自上次提交到当前分支以来的所有更改。
repo 使用名为“main”的默认分支创建。您可以使用 git 从该分支派生其他分支,这些分支最初包含原始分支的所有提交。您可以通过添加提交来分别发展分支,然后稍后在 GitHub 上使用“拉取请求”(PR)将更改从一个分支合并到另一个分支。您还可以使用 git 在本地计算机上的分支之间切换,例如,尝试不同的操作。
除了分支之外,还可以创建任何分支上的标签
,并在以后恢复该分支上的那个点。
在 GitHub 上创建帐户和存储库
首先,我们将在 GitHub 上创建一个免费帐户。使用免费帐户,您无法创建私有 repo,但您可以创建任意数量的公共存储库(“repo”)。然后,我们创建一个名为“django_local_library”的存储库,用于存储本地图书馆网站,因为我们将在本教程的其余部分中对其进行改进。
步骤如下:
- 访问https://github.com/并创建一个帐户。
- 登录后,点击顶部的工具栏中的+链接,然后选择新建存储库。
- 填写此表单中的所有字段。虽然这些不是强制性的,但强烈建议您填写。
- 输入存储库名称:“django_local_library”。
- 输入新的存储库描述:“用 Django 编写的本地图书馆网站”。
- 为存储库选择“公开”(默认值)。
警告:这将使所有源代码可见。请记住,除非存储库是私有的,否则不要在其中存储凭据或其他敏感材料。
- 在添加 .gitignore选择列表中选择Python。
- 在添加许可证选择列表中选择您喜欢的许可证。MDN 在此示例中使用“知识共享零 1.0 通用”。
- 选中使用自述文件初始化此存储库。
- 按创建存储库。将创建存储库,其中仅包含文件
README.txt
和.gitignore
。
将 repo 克隆到您的本地计算机
现在存储库(“repo”)已在 GitHub 上创建,我们将希望将其克隆(复制)到我们的本地计算机
- 在 GitHub 上,点击绿色的代码按钮。在“克隆”部分,选择“HTTPS”选项卡,然后复制 URL。如果您使用的是存储库名称“django_local_library”,则 URL 应类似于:
https://github.com/<your_git_user_id>/django_local_library.git
。 - 为您的本地计算机安装git(您可以在这里找到不同平台的版本)。
- 打开命令提示符/终端,并使用您上面复制的 URL 克隆您的 repo这将在当前目录中创建存储库。bash
git clone https://github.com/<your_git_user_id>/django_local_library.git
- 导航到 repo 文件夹。bash
cd django_local_library
修改和同步更改
现在,我们将修改本地计算机上的.gitignore
文件,提交更改,并更新 GitHub 上的存储库。这是一个有用的更改,但主要是因为我们要向您展示如何从 GitHub 拉取更改、在本地进行更改,然后将其推送到 GitHub。
- 在命令提示符/终端中,我们首先“获取”(获取),然后拉取(获取并合并到当前分支)来自 GitHub 的源的最新版本
注意:此步骤并非严格必要,因为我们刚刚克隆了源代码并且知道它是最新的。但是,通常您应该在进行更改之前更新来自 GitHub 的源代码。
“origin”是一个远程,它表示源代码所在 repo 的位置,“main”是分支。您可以使用命令:bashgit fetch origin main git pull origin main
git remote -v
验证 origin 是否是我们 GitHub 上的 repo。 - 接下来,我们检出一个新分支来存储我们的更改
bash
git checkout -b update_gitignore
checkout
命令用于切换分支,使其成为当前工作分支。-b
标志表示我们打算创建一个名为“update_gitignore”的新分支,而不是选择一个同名的现有分支。 - 打开**.gitignore** 文件,将以下几行复制到文件的底部,然后保存。
# Text backup files *.bak # Database *.sqlite3
请注意,.gitignore
用于指示不应该由 Git 自动备份的文件,例如临时文件和其他构建产物。 - 使用
add
命令将所有更改的文件(未被**.gitignore** 文件忽略的文件)添加到当前分支的“暂存区”。bashgit add -A
- 使用
status
命令检查所有即将commit
的文件是否正确(您希望包含源文件,而不是二进制文件、临时文件等)。它应该看起来有点像下面的列表。bash> git status On branch main Your branch is up-to-date with 'origin/update_gitignore'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: .gitignore
- 确认无误后,使用
commit
命令将文件提交到本地仓库,并使用-m
标志指定简洁明了的提交信息。这相当于对更改进行签核,并将其正式纳入本地仓库。bashgit commit -m ".gitignore: add .bak and .sqlite3"
- 此时,远程仓库尚未更改。我们可以使用以下命令将
update_gitignore
分支推送到“origin”仓库(GitHub)。bashgit push origin update_gitignore
- 返回您在 GitHub 上创建仓库的页面并刷新页面。应该会显示一个横幅,其中包含一个按钮,如果您想“比较并发起拉取请求”刚刚上传的分支,可以点击该按钮。选择该按钮,然后按照说明创建并合并拉取请求。 合并后,GitHub 上的仓库的“main”分支将包含您对
.gitignore
的更改。 - 随着文件发生变化,您可以继续使用此添加/提交/推送循环来更新本地仓库。
在下一个主题中,我们将使用此仓库来存储我们本地的图书馆网站源代码。
其他 Python 工具
有经验的 Python 开发人员可能会安装其他工具,例如代码风格检查器(帮助检测代码中常见的错误)。
请注意,您应该使用 Django 感知型代码风格检查器,例如 pylint-django,因为一些常见的 Python 代码风格检查器(例如 pylint
)会错误地报告 Django 为标准文件生成的错误。
测试您的安装
上面的测试有效,但不是很有趣。一个更有趣的测试是创建一个骨架项目,并查看其工作情况。为此,首先在命令提示符/终端中导航到您要存储 Django 应用的位置。为您的测试站点创建一个文件夹并导航到其中。
mkdir django_test
cd django_test
然后,您可以使用**django-admin** 工具创建一个名为“mytestsite”的新骨架站点,如所示。创建站点后,您可以导航到包含用于管理项目的main脚本的文件夹,该脚本称为**manage.py**。
django-admin startproject mytestsite
cd mytestsite
我们可以使用**manage.py** 和runserver
命令从该文件夹中运行开发 Web 服务器,如所示。
# Linux/macOS
python3 manage.py runserver
# Windows
py -3 manage.py runserver
注意:此时您可以忽略有关“未应用的迁移”的警告!
服务器运行后,您可以通过在本地 Web 浏览器中导航到以下 URL 来查看站点:http://127.0.0.1:8000/
。您应该会看到一个如下所示的站点。
总结
现在您已经在计算机上启动并运行了一个 Django 开发环境。
在测试部分,您还简要了解了如何使用django-admin startproject
创建新的 Django 网站,以及如何使用开发 Web 服务器(python3 manage.py runserver
)在浏览器中运行它。在下一篇文章中,我们将扩展此过程,构建一个简单但完整的 Web 应用程序。
另请参阅
- 快速安装指南(Django 文档)
- 如何安装 Django —完整指南(Django 文档)— 还介绍了如何删除 Django
- 如何在 Windows 上安装 Django(Django 文档)