原文链接:Setting up a Django development environment
原文的机器翻译太过于拗口,且有一定的错乱,所以我直接扒成中文过来留档,跟大家一起学习。没有看到不能翻译的statement,如果原作者认为侵权,可以联络我删除。
现在您已经知道Django的用途,我们将向您展示如何在Windows、Linux(Ubuntu)和macOS上设置和测试Django开发环境-无论您使用的是什么通用操作系统,本文将为您提供开始开发Django应用程序所需的功能。
先决条件:使用终端/命令行的基本知识,以及如何在开发计算机的操作系统上安装软件包。
目标:在您的计算机上运行Django(3.*)的开发环境。
Django开发环境概述
Django使您可以很容易地设置自己的计算机,以便开始开发web应用程序。本节介绍了开发环境的功能,并概述了一些设置和配置选项。本文的其余部分解释了在Ubuntu、macOS和Windows上安装Django开发环境的推荐方法,以及如何对其进行测试。
Django开发环境是什么?
开发环境是在本地计算机上安装Django,在将Django应用程序部署到生产环境之前,您可以使用它来开发和测试Django应用程序。
Django本身提供的主要工具是一组用于创建和使用Django项目的Python脚本,以及一个简单的开发web服务器,您可以使用它在计算机的web浏览器上测试本地(即在计算机上,而不是在外部web服务器上)Django web应用程序。
还有其他外围工具,它们构成了开发环境的一部分,我们在这里将不介绍。其中包括用于编辑代码的文本编辑器text editor或IDE,以及用于安全管理不同版本代码的源代码管理工具(如Git)。我们假设您已经安装了文本编辑器。
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 3.1.2,允许的版本是Python 3.6到3.8(请参阅常见问题解答:安装)。
Django项目建议(并“正式支持”)使用最新的受支持Python版本。
注意:Python2.7不能与Django的当前版本一起使用(Django 1.11.x系列是最后一个支持Python2.7的版本)。
我们在哪里可以下载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安装到虚拟环境中,下面我们将向您展示如何安装。
安装Python3
为了使用Django,您必须在操作系统上安装Python。如果您使用的是Python3,那么还需要Python包索引 (Python Package Index)工具pip3,该工具用于管理(安装、更新和删除)Django和其他Python应用程序使用的Python包/库。
本节简要介绍如何检查Ubuntu Linux 20.04、macOS和Windows 10的Python版本,并根据需要安装新版本。
注意:根据您的平台,您还可以从操作系统自己的包管理器或通过其他机制安装Python/pip。对于大多数平台,您可以从下载所需的安装文件https://www.python.org/downloads/ 并使用平台相应的特定方法进行安装。
Ubuntu 20.04
Ubuntu Linux 20.04 LTS默认包括Python 3.8.5。您可以通过在bash终端中运行以下命令来确认这一点:
python3 -V
Python 3.8.5
但是,默认情况下,您安装Python3包(包括Django)所需的Python包索引工具(pip3)不可用(译者注:不直接同时下载?)。可以使用以下方法在bash终端中安装pip3:
sudo apt install python3-pip
macOS
macOS“El Capitan”和其他较新版本不包括Python 3。您可以通过在zsh或bash终端中运行以下命令来确认这一点:
$ python3 -V
python3: command not found
您可以从Python.org轻松安装Python 3(以及pip3工具):
- 下载所需的安装文件包:
- 访问 https://www.python.org/downloads/
- 选择点击下载 Python 3.8.6 按钮 (版本按实际情况而变).
注意:提供的版本可能不同。确保Django支持您下载的版本(如果需要,可以在同一页面上找到获取旧版本的链接)。
- 使用Finder找到文件,然后双击包文件。按照安装提示进行操作。
您现在可以通过检查Python 3版本来确认安装成功,如下所示:
python3 -V
Python 3.9.0
同样,您可以通过列出可用的软件包来检查是否安装了pip3:
pip3 list
Windows 10
默认情况下,Windows不包括Python,但您可以从Python.org轻松安装它(连同pip3工具):
- Download the required installer:
1.访问 https://www.python.org/downloads/- 选择下载按钮 Python 3.8.6 (版本按实际情况而变).
注意:提供的版本可能不同。确保Django支持您下载的版本(如果需要,可以在同一页面上找到获取旧版本的链接)。 - 双击下载的文件并按照安装提示安装Python。
- 一定要勾选标有 "Add Python to PATH"项。
- 选择下载按钮 Python 3.8.6 (版本按实际情况而变).
然后,您可以通过在命令提示符中输入以下文本来验证是否安装了Python3:
py -3 -V
Python 3.8.6
默认情况下,Windows安装程序包含pip3(Python包管理器)。您可以列出已安装的软件包,如图所示:
pip3 list
注意:安装程序应该设置上述命令工作所需的一切。但是,如果您收到一条消息,说找不到Python,那么您可能忘记了将其添加到系统路径中。您可以通过再次运行安装程序,选择“修改”(Modify),并选中第二页上标记为“将Python添加到环境变量(Add Python to environment variables)”的框来完成此操作。
在Python虚拟环境中使用Django
我们将用于创建虚拟环境的库是VirtualEnvrapper(Linux和macOS)和VirtualEnvrapper win(Windows),这两个库都使用virtualenv工具。包装工具为管理所有平台上的接口创建一致的接口。
安装虚拟环境软件
Ubuntu虚拟环境设置
安装Python和pip后,可以安装VirtualEnvrapper(包括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变量指向Python3的正常安装位置,source/usr/local/bin/VIRTUALENVWRAPPER.sh指向VIRTUALENVWRAPPER.sh脚本的正常位置。如果测试时virtualenv不工作,那么需要检查Python和脚本是否在预期位置(然后适当地更改启动文件)。
您可以使用virtualenvwrapper.sh和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上设置VirtualEnvrapper几乎与在Ubuntu上完全相同(同样,您可以按照官方安装指南或下面的说明进行操作)。
如图所示,使用pip安装VirtualEnvrapper(并捆绑virtualenv)。
sudo pip3 install virtualenvwrapper
然后在shell启动文件的末尾添加以下行(这些行与Ubuntu相同)。如果您使用的是zsh shell,那么启动文件将是主目录中名为.zshrc的隐藏文件。如果您使用的是bashshell,那么它将是一个名为.bash\u 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变量指向Python3的正常安装位置,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
您可以使用virtualenvwrapper.sh和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 10虚拟环境设置
安装virtualenvwrapper win甚至比设置virtualenvwrapper更简单,因为您不需要配置工具存储虚拟环境信息的位置(有一个默认值)。您只需在命令提示符下运行以下命令:
pip3 install virtualenvwrapper-win
现在,您可以使用mkvirtualenv命令创建新的虚拟环境。
创建虚拟环境
一旦安装了VirtualEnvrapper或VirtualEnvrapper 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。
pip3 install django~=3.1
您可以通过运行以下命令来测试是否安装了Django(这只是测试Python是否可以找到Django模块):
# Linux/macOS
python3 -m django --version
3.1.2
# Windows
py -3 -m django --version
3.1.2
注意:如果上述Windows命令未显示django模块,请尝试:
py -m django --version
在Windows中,Python3脚本是通过在命令前面加上py-3来启动的,尽管这可能因具体安装而异。如果遇到命令问题,请尝试省略-3修饰符。在Linux/macOS中,命令是python3。
警告:此模块的其余部分使用Linux命令调用Python 3(python3)。如果您正在Windows上工作,请将此前缀替换为:py-3
测试您的安装
上面的测试是有效的,但不是很有趣。一个更有趣的测试是创建一个框架项目并查看它的工作情况。为此,首先在命令提示符/终端中导航到要存储Django应用程序的位置。为测试站点创建文件夹并导航到其中。
mkdir django_test
cd django_test
然后,您可以使用django管理工具创建一个名为“mytestsite”的新框架站点,如图所示。创建站点后,您可以导航到一个文件夹,在该文件夹中可以找到管理项目的主脚本manage.py。
django-admin startproject mytestsite
cd mytestsite
我们可以使用manage.py和runserver命令在此文件夹中运行开发web服务器,如图所示。
$ python3 manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 27, 2020 - 03:00:01
Django version 3.1.2, using settings 'mytestsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
注意:上面的命令显示Linux/macOS命令。此时,您可以忽略有关“18个未应用的迁移(18 unapplied migration(s))”的警告!
服务器运行后,您可以通过导航到本地web浏览器上的以下URL来查看网站:http://127.0.0.1:8000/. 您应该看到一个如下所示的站点:
总结
现在,您的计算机上已经安装并运行了Django开发环境。
在测试部分,您还简要了解了如何使用Django admin startproject创建一个新的Django网站,并使用开发web服务器(python3 manage.py runserver)在浏览器中运行它。在下一篇文章中,我们将扩展这个过程,构建一个简单但完整的web应用程序。