Setting up a Django development environment

 

Now that you know what Django is for, we'll show you how to set up and test a Django development environment on Windows, Linux (Ubuntu), and macOS — whatever common operating system you are using, this article should give you what you need to be able to start developing Django apps.

Prerequisites: 使用终端/命令行以及如何在开发计算机的操作系统上安装软件包的基本知识.
Objective: 在计算机上运行Django(2.0)的开发环境.

Django development environment overview

Django使设置自己的计算机非常容易,以便您可以开始开发Web应用程序. 本节说明了开发环境所带来的好处,并概述了一些设置和配置选项. 本文的其余部分说明了在Ubuntu,macOS和Windows上安装Django开发环境的推荐方法,以及如何对其进行测试.

What is the Django development environment?

开发环境是在本地计算机上安装的Django,可在将其部署到生产环境之前用于开发和测试Django应用.

Django本身提供的主要工具是一组用于创建和使用Django项目的Python脚本,以及一个简单的开发网络服务器 ,您可以使用该服务器来测试本地(即,在计算机上,而不是在外部Web服务器上)Django Web应用程序在计算机的网络浏览器上.

还有其他外围工具,它们构成了开发环境的一部分,在此不做介绍. 这些工具包括用于编辑代码的文本编辑器或IDE,以及用于安全管理代码的不同版本的源代码管理工具(如Git) . 我们假设您已经安装了文本编辑器.

What are the Django setup options?

Django在如何安装和配置方面非常灵活. Django可以是:

  • 安装在不同的操作系统上.
  • 从源代码,Python程序包索引(PyPi)以及大多数情况下,从主机的程序包管理器应用程序安装.
  • 配置为使用多个数据库之一,可能还需要单独安装和配置这些数据库.
  • 在主系统Python环境或单独的Python虚拟环境中运行.

这些选项中的每一个都需要稍微不同的配置和设置. 以下小节将说明您的一些选择. 在本文的其余部分,我们将向您展示如何在少量操作系统上设置Django,并且将在本模块的其余部分中假定进行该设置.

注意 :其他可能的安装选项在官方Django文档中介绍. 我们链接到下面相应文档 .

What operating systems are supported?

Django Web应用程序几乎可以在任何可以运行Python 3编程语言的计算机上运行:Windows,macOS,Linux / Unix,Solaris,仅举几例. 在开发过程中,几乎所有计算机都应具有运行Django所必需的性能.

在本文中,我们将提供有关Windows,macOS和Linux / Unix的说明.

What version of Python should be used?

我们建议您使用可用的最新版本-在撰写本文时,它是Python 3.7.2.

如果需要,可以使用Python 3.5或更高版本(在将来的版本中将不再支持Python 3.5).

注意 :Python 2.7不能与Django 2.1一起使用(Django 1.11.x系列是最后一个支持Python 2.7的版本).

Where can we download Django?

可以从三个地方下载Django:

  • 使用pip工具的Python软件包系统信息库(PyPi). 这是获取最新的Django稳定版本的最佳方法.
  • 使用计算机程序包管理器中的版本. 与操作系统捆绑在一起的Django发行版提供了一种熟悉的安装机制. 但是请注意,打包的版本可能很旧,只能安装到系统Python环境中(可能不是您想要的).
  • 从源安装. 您可以从源代码获取并安装最新的Django尖端版本. 不建议初学者使用,但是当您准备开始为Django本身做贡献时,需要使用此方法.

本文介绍如何从PyPi安装Django,以获得最新的稳定版本.

Which database?

Django支持四个主要数据库(PostgreSQL,MySQL,Oracle和SQLite),并且社区库为其他流行的SQL和NoSQL数据库提供了不同级别的支持. 我们建议您为生产和开发选择相同的数据库(尽管Django使用其对象关系映射器(ORM)提取了许多数据库差异,但仍有一些潜在的问题可以更好地避免).

对于本文(以及本模块的大部分内容),我们将使用SQLite数据库,该数据库将其数据存储在文件中. SQLite旨在用作轻量级数据库,并且不支持高级并发. 但是,对于主要是只读的应用程序,这是一个绝佳的选择.

注意 :使用标准工具( django-admin )启动网站项目时,默认情况下Django配置为使用SQLite. 当您入门时,这是一个不错的选择,因为它不需要其他配置或设置.

Installing system-wide or in a Python virtual environment?

当您安装Python3时,会得到一个由所有Python3代码共享的单一全局环境. 您可以在环境中安装所需的任何Python软件包,但一次只能安装一个特定版本的每个软件包.

注意 :安装到全局环境中的Python应用程序可能会相互冲突(即,如果它们依赖于同一软件包的不同版本).

如果将Django安装到默认/全局环境中,则只能在计算机上定位Django的一个版本. 如果您要创建新网站(使用最新版本的Django),同时仍然维护依赖于旧版本的网站,则可能会出现问题.

因此,经验丰富的Python / Django开发人员通常会在独立的Python虚拟环境中运行Python应用程序. 这可以在一台计算机上启用多个不同的Django环境. Django开发人员团队本身建议您使用Python虚拟环境!

本模块假定您已将Django安装到虚拟环境中,下面将向您展示如何进行.

Installing Python 3

为了使用Django,您将必须在操作系统上安装Python. 如果您使用的是Python 3,则还需要Python软件包索引工具pip3 ,该工具用于管理(安装,更新和删除)Django和其他Python应用程序使用的Python软件包/库.

This section briefly explains how you can check what versions of Python are present, and install new versions as needed, for Ubuntu Linux 18.04, macOS, and Windows 10.

注意 :根据您的平台,您也许还可以从操作系统自己的软件包管理器或通过其他机制来安装Python / pip. 对于大多数平台,您可以从https://www.python.org/downloads/下载所需的安装文件,并使用适当的特定于平台的方法进行安装.

Ubuntu 18.04

Ubuntu Linux 18.04 LTS默认情况下包括Python 3.6.6. 您可以通过在bash终端中运行以下命令来确认这一点:

python3 -V
 Python 3.6.6

然而,在Python包索引工具,你需要安装包为Python 3(包括Django的)默认情况下是不可用的. 您可以使用以下方法在bash终端中安装pip3:

sudo apt install python3-pip

macOS

macOS" El Capitan"和其他较新的版本不包括Python3.您可以通过在bash终端中运行以下命令来确认这一点:

python3 -V
 -bash: python3: command not found

您可以从python.org轻松安装Python 3(以及pip3工具):

  1. 下载所需的安装程序:
    1. 转到https://www.python.org/downloads/
    2. 选择" 下载Python 3.7.2"按钮(确切的次要版本号可能会有所不同).
  2. 使用Finder查找文件,然后双击打包文件. 遵循安装提示.

现在,您可以通过检查Python 3版本来确认安装成功,如下所示:

python3 -V
 Python 3.7.2

您可以通过列出可用的软件包来类似地检查pip3是否已安装:

pip3 list

Windows 10

Windows默认情况下不包含Python,但是您可以从python.org轻松安装(以及pip3工具):

  1. 下载所需的安装程序:
    1. 转到https://www.python.org/downloads/
    2. 选择" 下载Python 3.7.2"按钮(确切的次要版本号可能会有所不同).
  2. 双击下载的文件并按照安装提示安装Python
  3. 确保选中标记为"将Python添加到PATH"的框

然后,可以通过在命令提示符下输入以下文本来验证是否已安装Python 3:

py -3 -V 
 Python 3.7.2

Windows安装程序默认情况下包含pip3 (Python程序包管理器). 您可以列出已安装的软件包,如下所示:

pip3 list

注意 :安装程序应设置上述命令运行所需的一切. 但是,如果收到一条消息,提示找不到Python,则可能已忘记将其添加到系统路径中. 为此,您可以再次运行安装程序,选择"修改",然后在第二页上选中标有"将Python添加到环境变量"的框.

Using Django inside a Python virtual environment

我们将用于创建虚拟环境的库为virtualenvwrapper (Linux和macOS)和virtualenvwrapper-win (Windows),它们都使用virtualenv工具. 包装器工具创建一个一致的接口,用于管理所有平台上的接口.

Installing the virtual environment software

Ubuntu virtual environment setup

安装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_PYTHONVIRTUALENVWRAPPER_VIRTUALENV_ARGS变量指向Python3的常规安装位置, source /usr/local/bin/virtualenvwrapper.sh指向virtualenvwrapper.sh脚本的常规位置. 如果您在测试时virtualenv无法正常工作, 则要检查的一件事是Python和脚本在预期的位置(然后适当更改启动文件).

您可以使用which virtualenvwrapper.shwhich 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 virtual environment setup

在macOS上设置virtualenvwrapper与在Ubuntu上几乎完全相同(同样,您可以按照官方安装指南或以下指南中的说明进行操作).

如图所示,使用pip安装virtualenvwrapper (并捆绑virtualenv ).

sudo pip3 install virtualenvwrapper

然后将以下行添加到您的外壳启动文件的末尾.

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

您可以使用which virtualenvwrapper.shwhich python3命令找到系统的正确位置.

这些行与Ubuntu相同,但是启动文件是主目录中不同名称的隐藏文件.bash_profile .

注意 :如果在查找程序中找不到要编辑的.bash_profile ,也可以使用nano在终端中打开该文件.

这些命令如下所示:

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.

然后通过在终端中进行以下调用来重新加载启动文件:

source ~/.bash_profile

此时,您可能会看到一堆脚本正在运行(与Ubuntu安装相同的脚本). 现在,您应该可以使用mkvirtualenv命令创建一个新的虚拟环境.

Windows 10 virtual environment setup

安装virtualenvwrapper-win甚至比设置virtualenvwrapper更简单,因为您无需配置该工具在何处存储虚拟环境信息(有默认值). 您需要做的就是在命令提示符下运行以下命令:

pip3 install virtualenvwrapper-win

现在,您可以使用mkvirtualenv命令创建一个新的虚拟环境.

Creating a virtual environment

安装virtualenvwrappervirtualenvwrapper-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虚拟环境中运行,就像我们在上面设置的那样.

Using a virtual environment

您应该知道其他一些有用的命令(工具文档中有更多命令,但是您经常使用这些命令):

  • deactivate -退出当前的Python虚拟环境
  • workon —列出可用的虚拟环境
  • workon name_of_environment —激活指定的Python虚拟环境
  • rmvirtualenv name_of_environment —删除指定的环境.

Installing Django

Once you've created a virtual environment, and called workon to enter it, you can use pip3 to install Django. 

pip3 install django

您可以通过运行以下命令来测试是否已安装Django(这只是测试Python是否可以找到Django模块):

# Linux/macOS
python3 -m django --version
 2.1.5

# Windows
py -3 -m django --version 
 2.1.5

注意 :如果上述Windows命令没有显示django模块,请尝试:

py -m django --version

在Windows中, Python 3脚本是通过在命令前加上py -3来启动的,尽管脚本会根据您的特定安装而有所不同. 如果遇到命令问题,请尝试省略-3修饰符. 在Linux / macOS中,命令是python3.

重要说明 :本模块的其余部分使用Linux命令来调用Python 3( python3 ). 如果您使用的是Windows,只需将此前缀替换为: py -3

Testing your installation

上面的测试有效,但并不是很有趣. 一个更有趣的测试是创建一个骨架项目并查看其工作情况. 为此,请首先在命令提示符/终端中导航到要存储Django应用程序的位置. 为您的测试站点创建一个文件夹,然后导航到该文件夹​​.

mkdir django_test
cd django_test

然后,您可以使用django-admin工具创建一个名为" mytestsite "的新骨架站点,如下所示. 创建站点后,您可以导航到该文件夹​​,在该文件夹中将找到用于管理项目的主要脚本,称为manage.py .

django-admin startproject mytestsite
cd mytestsite

我们可以使用manage.pyrunserver命令从此文件夹中运行开发Web服务器 ,如图所示.

$ python3 manage.py runserver 
Performing system checks...

System check identified no issues (0 silenced).

You have 15 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.

December 16, 2018 - 07:06:30
Django version 2.1.5, using settings 'mytestsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

注意 :上面的命令显示了Linux / macOS命令. 此时,您可以忽略有关" 15个未应用的迁移"的警告!

服务器运行后,您可以通过在本地Web浏览器上导航至以下URL来查看站点: http://127.0.0.1:8000/ : http://127.0.0.1:8000/ : http://127.0.0.1:8000/ . 您应该看到一个看起来像这样的网站:
Django Skeleton App主页-Django 2.0

Summary

现在,您已经在计算机上启动并运行了Django开发环境.

在测试部分中,您还简要地看到了我们如何使用django-admin startproject创建一个新的Django网站,以及如何使用开发Web服务器( python3 manage.py runserver )在浏览器中运行它. 在下一篇文章中,我们将扩展此过程,构建一个简单但完整的Web应用程序.

See also

In this module