如何在Ubuntu16.04上安装DjangoWeb框架

来自菜鸟教程
跳转至:导航、​搜索

介绍

Django 是一个功能齐全的 Python Web 框架,用于开发动态网站和应用程序。 使用 Django,您可以快速创建 Python Web 应用程序并依靠该框架完成大量繁重的工作。

在本指南中,我们将向您展示如何在 Ubuntu 16.04 服务器上启动并运行 Django。 安装后,我们将向您展示如何启动一个新项目以用作您网站的基础。

不同的方法

根据您的需要以及您希望如何配置开发环境,您可以通过多种不同的方式安装 Django。 这些具有不同的优势,一种方法可能比其他方法更适合您的具体情况。

一些不同的方法如下:

  • 从包全局安装:官方的 Ubuntu 存储库包含 Django 包,可以使用传统的 apt 包管理器轻松安装。 这非常简单,但不如其他一些方法灵活。 此外,存储库中包含的版本可能落后于项目中可用的官方版本。
  • 通过 pip 全局安装:pip 工具是 Python 包的包管理器。 如果你安装了pip,你可以很容易地在系统级别安装Django,供任何用户使用。 这应该始终包含最新的稳定版本。 即便如此,全球安装本质上不太灵活。
  • 在 Virtualenv 中通过 pip 安装:Python virtualenv 包允许您为各种项目创建自包含环境。 使用这项技术,您可以将 Django 安装在项目目录中,而不会影响更大的系统。 这使您可以轻松地提供每个项目的自定义和包。 与全局可访问的安装相比,虚拟环境增加了一些轻微的心理和过程开销,但提供了最大的灵活性。
  • Development Version 通过 git 安装:如果你想安装最新的开发版本而不是稳定版本,你必须从 git repo 获取代码。 这是获得最新功能/修复所必需的,可以在全局或本地完成。 但是,开发版本没有相同的稳定性保证。

考虑到上述注意事项和质量,请从以下说明中选择最适合您需求的安装方法。

先决条件

在开始之前,您应该在 Ubuntu 16.04 服务器上拥有一个具有 sudo 权限的非 root 用户。 要进行设置,请按照我们的 Ubuntu 16.04 初始服务器设置指南

当您准备好继续时,请按照以下步骤操作。

从包全局安装

如果您希望使用 Ubuntu 存储库安装 Django,该过程非常简单。

首先,用 apt 更新你的本地包索引:

sudo apt-get update

接下来,选择要与 Django 一起使用的 Python 版本。 对于 Python 2,键入:

sudo apt-get install python-django

相反,如果您想在 Django 中使用 Python 3,请输入:

sudo apt-get install python3-django

您可以通过键入以下内容来测试安装是否成功:

django-admin --version
Output1.8.7

这意味着该软件已成功安装。 您可能还注意到 Django 版本不是最新的稳定版本。 要了解如何使用该软件,请跳过学习如何创建示例项目

通过 pip 全局安装

如果您希望全局安装最新版本的 Django,更好的选择是使用 Python 包管理器 pip。 首先,我们需要安装 pip 包管理器。 刷新您的 apt 包索引:

sudo apt-get update

现在您可以安装pip。 如果您打算使用 Python 版本 2,请使用以下命令进行安装:

sudo apt-get install python-pip

相反,如果您打算使用 Python 3,请使用以下命令:

sudo apt-get install python3-pip

现在你有了pip,我们就可以轻松安装Django了。 如果您使用的是 Python 2,则可以键入:

sudo pip install django

如果您使用的是 Python 3,请改用 pip3 命令:

sudo pip3 install django

您可以通过键入以下内容来验证安装是否成功:

django-admin --version
Output1.9.6

如您所见,通过 pip 提供的版本比 Ubuntu 存储库中的版本更新(您的版本可能与上述不同)。

在 Virtualenv 中通过 pip 安装

也许在你的系统上安装 Django 最灵活的方法是使用 virtualenv 工具。 此工具允许您创建虚拟 Python 环境,您可以在其中安装所需的任何 Python 包,而不会影响系统的其余部分。 这允许您在每个项目的基础上选择 Python 包,而不管与其他项目的要求是否冲突。

我们将首先从 Ubuntu 存储库安装 pip。 在开始之前刷新您的本地包索引:

sudo apt-get update

如果您打算使用 Python 版本 2,您可以通过键入以下命令来安装 pip

sudo apt-get install python-pip

相反,如果您打算使用 Python 版本 3,则可以通过键入以下命令来安装 pip

sudo apt-get install python3-pip

安装 pip 后,您可以使用它来安装 virtualenv 软件包。 如果你安装了 Python 2 pip,你可以输入:

sudo pip install virtualenv

如果您安装了 pip 的 Python 3 版本,则应键入以下内容:

sudo pip3 install virtualenv

现在,每当您开始一个新项目时,您都可以为它创建一个虚拟环境。 首先创建并移动到一个新的项目目录:

mkdir ~/newproject
cd ~/newproject

现在,通过键入以下内容在项目目录中创建一个虚拟环境:

virtualenv newenv

这会将 Python 的独立版本以及 pip 安装到项目目录中的隔离目录结构中。 我们选择将我们的虚拟环境称为 newenv,但您应该将其命名为描述性的。 将使用您选择的名称创建一个目录,该目录将保存安装包的文件层次结构。

要将软件包安装到隔离环境中,您必须通过键入以下命令来激活它:

source newenv/bin/activate

您的提示应该更改以反映您现在处于虚拟环境中。 它看起来像 (newenv)username@hostname:~/newproject$

在您的新环境中,您可以使用 pip 来安装 Django。 无论您使用的是 Python 版本 2 还是 3,当您在虚拟环境中时,都应该将其称为 pip。 另请注意,您 不需要 需要使用 sudo,因为您是在本地安装:

pip install django

您可以通过键入以下内容来验证安装:

django-admin --version
Output1.9.6

要离开您的虚拟环境,您需要从系统上的任何位置发出 deactivate 命令:

deactivate

您的提示应该恢复到常规显示。 当您希望再次处理您的项目时,您应该重新激活您的虚拟环境,方法是回到您的项目目录并激活:

cd ~/newproject
source newenv/bin/activate

开发版通过git安装

如果您需要 Django 的开发版本,则必须从其 git 存储库下载并安装 Django。

为此,您需要使用 apt 在您的系统上安装 git。 通过键入以下内容刷新您的本地包索引:

sudo apt-get update

现在,我们可以安装git。 我们还将安装 pip Python 包管理器。 下载后,我们将使用它来处理 Django 的安装。 如果您使用的是 Python 2,则可以键入:

sudo apt-get install git python-pip

如果您使用的是 Python 3,则应键入以下内容:

sudo apt-get install git python3-pip

拥有 git 后,您可以克隆 Django 存储库。 在发布之间,此存储库将具有更多最新功能和错误修复,但可能会牺牲稳定性。 您可以通过键入以下命令将存储库克隆到主目录中名为 django-dev 的目录:

git clone git://github.com/django/django ~/django-dev

克隆存储库后,您可以使用 pip 安装它。 我们将使用 -e 选项以“可编辑”模式安装,这是从版本控制安装时需要的。 如果您使用的是 Python 版本 2,请键入:

sudo pip install -e ~/django-dev

如果您使用的是 Python 3,请键入:

sudo pip3 install -e ~/django-dev

您可以通过键入以下内容来验证安装是否成功:

django-admin --version
Output1.10.dev20160516172816

请注意,如果您希望在单个环境中安装 Django 的开发版本,您也可以将此策略与上面的 virtualenv 结合使用。

创建示例项目

现在您已经安装了 Django,我们可以简要地向您展示如何开始一个项目。

请按照以下与您使用的 Python 版本匹配的步骤操作。

蟒蛇2

您可以使用 django-admin 命令创建项目:

django-admin startproject projectname
cd projectname

这将在您的当前目录中创建一个名为 projectname 的目录。 在其中,将创建一个管理脚本,并使用实际代码创建另一个名为 projectname 的目录。

笔记

如果您已经在为使用 virtualenv 命令创建的项目目录中,您可以通过键入此命令告诉 Django 将管理脚本和内部目录放入当前目录,而不需要额外的层(注意结尾点):

django-admin startproject projectname .

要在更新版本的 Django 上引导数据库(默认情况下使用 SQLite),您可以键入:

python manage.py migrate

如果 migrate 命令不起作用,您可能使用的是旧版本的 Django。 相反,您可以键入:

python manage.py syncdb

作为此过程的一部分,您将被要求创建一个管理用户。 选择用户的用户名、电子邮件地址和密码。

如果您使用上面的 migrate 命令,则需要手动创建管理用户。 您可以通过键入以下内容来创建管理用户:

python manage.py createsuperuser

系统将提示您输入用户名、电子邮件地址和用户密码。

跳到使用您的开发版本进行测试的部分。

蟒蛇 3

您可以使用 django-admin 命令创建项目:

django-admin startproject projectname
cd projectname

这将在您的当前目录中创建一个名为 projectname 的目录。 在其中,将创建一个管理脚本,并使用实际代码创建另一个名为 projectname 的目录。

笔记

如果您已经在为使用 virtualenv 命令创建的项目目录中,您可以通过键入此命令告诉 Django 将管理脚本和内部目录放入当前目录,而不需要额外的层(注意结尾点):

django-admin startproject projectname .

要在更新版本的 Django 上引导数据库(默认情况下使用 SQLite),您可以键入:

python3 manage.py migrate

如果 migrate 命令不起作用,您可能使用的是旧版本的 Django。 相反,您可以键入:

python3 manage.py syncdb

作为此过程的一部分,您将被要求创建一个管理用户。 选择用户的用户名、电子邮件地址和密码。

如果您使用上面的 migrate 命令,则需要手动创建管理用户。 您可以通过键入以下内容来创建管理用户:

python3 manage.py createsuperuser

系统将提示您输入用户名、电子邮件地址和用户密码。

在 Django 设置中修改 ALLOWED_HOSTS

在测试应用程序之前,您需要修改 Django 设置中的指令之一。

通过键入以下内容打开设置文件:

nano ~/projectname/projectname/settings.py

在里面,找到 ALLOWED_HOSTS 指令。 这定义了可用于连接到 Django 实例的地址或域名的白名单。 任何带有不在此列表中的 Host 标头的传入请求都将引发异常。 Django 要求您设置它以防止某一类安全漏洞。

在方括号中,列出与您的 Django 服务器关联的 IP 地址或域名。 每个项目都应列在引号中,条目之间用逗号分隔。 如果您希望请求整个域和任何子域,请在条目的开头添加句点。 在下面的代码片段中,有一些注释掉的示例用于演示:

~/myproject/myproject/settings.py

. . .
# The simplest case: just add the domain name(s) and IP addresses of your Django server
# ALLOWED_HOSTS = [ 'example.com', '203.0.113.5']
# To respond to 'example.com' and any subdomains, start the domain with a dot
# ALLOWED_HOSTS = ['.example.com', '203.0.113.5']
ALLOWED_HOSTS = ['your_server_domain_or_IP', 'second_domain_or_IP', . . .]

完成后,保存并关闭文件。

使用您的开发服务器进行测试

一旦你有了一个用户,你就可以启动 Django 开发服务器来看看一个新的 Django 项目是什么样子的。 您应该仅将其用于开发目的。

在尝试开发服务器之前,请确保在防火墙中打开端口。 如果您在初始服务器设置指南中使用 UFW,您可以通过键入以下内容打开相应的端口:

sudo ufw allow 8000

现在,启动开发服务器。

对于 Python 2,运行:

python manage.py runserver 0.0.0.0:8000

对于 Python 3,运行:

python3 manage.py runserver 0.0.0.0:8000

访问您的服务器的 IP 地址,然后在您的网络浏览器中访问 :8000

server_ip_address:8000

您应该会看到如下所示的内容:

现在,将 /admin 附加到 URL 的末尾以访问管理员登录页面:

server_ip_address:8000/admin

如果您输入刚刚创建的管理员用户名和密码,您应该会被带到该站点的管理员部分:

浏览完默认站点后,您可以通过在终端中键入 CTRL-C 来停止开发服务器。

您创建的 Django 项目为设计更完整的站点提供了结构基础。 查看 Django 文档以获取有关如何构建应用程序和自定义站点的更多信息。

结论

您现在应该在 Ubuntu 16.04 服务器上安装了 Django,它提供了创建强大的 Web 应用程序所需的主要工具。 您还应该知道如何启动一个新项目并启动开发人员服务器。 利用像 Django 这样的完整 Web 框架可以帮助加快开发速度,让您只专注于应用程序的独特方面。