如何在Ubuntu16.04上安装Django并设置开发环境

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

介绍

Django 是一个用 Python 编写的免费开源 Web 框架,遵循 模型模板视图 (MTV) 软件架构模式。 MTV 模式是 Django 对 模型-视图-控制器 (MVC) 模式的采用。 根据 Django Software Foundation,model 是您数据的唯一权威来源,view 描述了通过 Python 回调 函数表示给用户的数据[ X215X] 到一个特定的 URL,template 是 Django 动态生成 HTML 的方式。

Django 的核心原则是可扩展性、可重用性和快速开发。 它还以其框架级别的一致性和松散耦合而闻名,允许各个组件相互独立。 不要重复自己(DRY 编程)是 Django 原则不可或缺的一部分。

在本教程中,我们将设置一个 Django 开发环境。 我们将安装 Python 3、pip 3、Django 和 virtualenv,以便为您提供使用 Django 开发 Web 应用程序所需的工具。

先决条件

在 Debian 或 Ubuntu Linux 服务器上设置的具有 sudo 权限的非 root 用户帐户。 您可以通过遵循并完成 Debian 8 初始服务器设置或 Ubuntu 16.04 教程的 初始服务器设置中的步骤 1-4 来实现这些先决条件。

第 1 步 — 安装 Python 和 pip

要安装 Python,我们必须首先更新本地 APT 存储库。 在您的终端窗口中,我们将输入以下命令。 请注意,-y 标志在升级过程中对提示回答“是”。 如果您希望针对每个提示停止升级,请删除该标志。

sudo apt-get update && sudo apt-get -y upgrade

当提示配置 grub-pc 时,您可以按 ENTER 接受默认值,或根据需要进行配置。

Django 软件基金会推荐使用 Python 3,所以一旦一切更新,我们可以使用以下命令安装 Python 3:

sudo apt-get install python3

要验证 Python 3 的安装是否成功,请使用 python3 命令运行版本检查:

python3 -V

结果输出将与此类似:

Outputpython 3.5.2

现在我们已经安装了 Python 3,我们还需要 pip 来从 Python 的包存储库 PyPi 安装包。

sudo apt-get install -y python3-pip

要验证 pip 是否已成功安装,请运行以下命令:

pip3 -V

您应该会看到与此类似的输出:

Outputpip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

现在我们已经安装了 pip,我们可以为 Python 环境快速安装其他必要的包。

第 2 步 — 安装 virtualenv

virtualenv 是一个 虚拟环境,您可以在其中在包含的开发空间中安装软件和 Python 包,它将已安装的软件和包与您机器的其他全局环境隔离开来。 这种方便的隔离可防止冲突的包或软件相互交互。

要安装 virtualenv,我们将使用 pip3 命令,如下所示:

pip3 install virtualenv

安装后,运行版本检查以验证安装是否成功完成:

virtualenv --version

我们应该看到以下输出,或类似的东西:

Outputvirtualenv 20.0.20 from /home/sammy/.local/lib/python3.5/site-packages/virtualenv/__init__.py

您已成功安装 virtualenv

此时,我们可以将我们的 Django Web 应用程序及其相关的软件依赖项与我们系统上的其他 Python 包或项目隔离开来。

第 3 步 — 安装 Django

安装 Django 有三种方法。 我们将在本教程中使用 pip 安装方法,但让我们介绍所有可用选项以供您参考。

  • 选项 1:在 virtualenv 中安装 Django。 当您需要将您的 Django 版本与服务器的全局环境隔离时,这是理想的选择。
  • 选项 2:从源代码安装 Django。 如果您想要最新的软件或想要比 Ubuntu APT 存储库提供的更新的软件,您可以直接从源代码安装。 请注意,如果您希望您的软件版本是最新的,则选择此安装方法需要经常关注和维护。
  • 选项 3:使用 pip 全局安装 Django。 我们要使用的选项是 pip 3,因为我们将全局安装 Django。

我们将在虚拟环境中使用 pip 安装 Django。 有关设置和使用编程环境的更多指导和信息,请查看设置虚拟环境的教程。

在服务器的主目录中,我们必须创建包含 Django 应用程序的目录。 运行以下命令以创建一个名为 django-apps 或您选择的其他名称的目录。 然后导航到目录。

mkdir django-apps
cd django-apps 

django-apps 目录中,创建您的虚拟环境。 我们称它为 env

virtualenv env

现在,使用以下命令激活虚拟环境:

. env/bin/activate

一旦前缀更改为 (env),您就会知道它已被激活,根据您所在的目录,它看起来类似于以下内容:


在环境中,使用 pip 安装 Django 包。 安装 Django 允许我们创建和运行 Django 应用程序。 要了解有关 Django 的更多信息,请阅读我们关于 Django 开发 的教程系列。

pip install django

安装后,通过运行版本检查来验证您的 Django 安装:

django-admin --version

这或类似的东西将是结果输出:

Output2.2.12

在您的服务器上安装 Django 后,我们可以继续创建一个测试项目以确保一切正常。

第 4 步 — 创建 Django 测试项目

为了测试 Django 安装,我们将创建一个框架 Web 应用程序。

设置防火墙规则

首先,如果适用,我们需要打开我们将在服务器防火墙中使用的端口。 如果您使用的是UFW(详见初始服务器设置指南),您可以使用以下命令打开端口:

sudo ufw allow 8000

如果您使用的是 DigitalOcean Firewalls,您可以从入站规则中选择 HTTP。 您可以阅读入门教程 入站规则部分,了解有关 DigitalOcean 防火墙的更多信息并为它们创建规则。

启动项目

我们现在可以使用 django-admin 生成应用程序,这是一个用于 Python 中管理任务的命令行实用程序。 然后我们可以使用startproject命令为我们的测试网站创建项目目录结构。

django-apps 目录中,运行以下命令:

django-admin startproject testsite

注意:运行django-admin startproject <projectname>命令会将工程目录和工程包命名为<projectname>,并在运行命令的目录下创建工程。 如果提供了可选的 <destination> 参数,Django 将使用提供的目标目录作为项目目录,并在其中创建 manage.py 和项目包。


现在我们可以查看刚刚创建的项目文件。 导航到 testsite 目录,然后列出该目录的内容以查看创建了哪些文件:

cd testsite
ls
Outputmanage.py  testsite

您会注意到显示此目录的输出包含一个名为 manage.py 的文件和一个名为 testsite 的文件夹。 manage.py文件类似于django-admin,将项目的包放在sys.path上。 这也将 DJANGO_SETTINGS_MODULE 环境变量设置为指向您项目的 settings.py 文件。

您可以通过运行 less 命令在终端中查看 manage.py 脚本,如下所示:

less manage.py

阅读完脚本后,按 q,退出查看文件。

现在导航到 testsite 目录以查看创建的其他文件:

cd testsite/

然后运行以下命令列出目录的内容:

ls

您将看到四个文件:

Output__init__.py  settings.py  urls.py  wsgi.py

让我们来看看每个文件是什么:

  • __init__.py 充当 Python 项目的入口点。
  • settings.py 描述了 Django 安装的配置,并让 Django 知道哪些设置可用。
  • urls.py 包含一个 urlpatterns 列表,它将 URL 路由和映射到它们的 views
  • wsgi.py 包含 Web 服务器网关接口的配置。 Web 服务器网关接口 (WSGI) 是用于部署 Web 服务器和应用程序的 Python 平台标准。

注意: 虽然生成了默认文件,但您仍然可以随时调整 wsgi.py 以满足您的部署需求。


启动并查看您的网站

现在我们可以通过运行runserver命令启动服务器并在指定的主机和端口上查看网站。

我们需要将您的服务器 IP 地址添加到位于 ~/test_django_app/testsite/testsite/settings.py 文件中的 ALLOWED_HOSTS 列表中。

Django 文档 中所述,ALLOWED_HOSTS 变量包含“表示此 Django 站点可以提供的主机/域名的字符串列表。 这是一种防止 HTTP Host 标头攻击的安全措施,即使在许多看似安全的 Web 服务器配置下也是可能的。”

您可以使用您喜欢的文本编辑器添加您的 IP 地址。 例如,如果您使用 nano,只需运行以下命令:

nano ~/django-apps/testsite/testsite/settings.py

运行命令后,您需要导航到文档的“允许的主机”部分,并将服务器的 IP 地址添加到单引号或双引号内的方括号内。

设置.py

"""
Django settings for testsite project.

Generated by 'django-admin startproject' using Django 2.0.
...
"""
...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

# Edit the line below with your server IP address
ALLOWED_HOSTS = ['your-server-ip']
...

您可以保存更改并退出 nano,方法是按住 CTRL + x 键,然后按 y 键。

完成此操作后,请务必导航回 manage.py 所在的目录:

cd ~/django-apps/testsite/

现在,运行以下命令,将 your-server-ip 文本替换为您的服务器的 IP:

python manage.py runserver your-server-ip:8000

最后,您可以导航到以下链接以查看您的骨架网站的外观,再次将突出显示的文本替换为您的服务器的实际 IP:

http://your-server-ip:8000/

页面加载后,您将收到类似于以下内容的网页:

这证实了 Django 已正确安装并且我们的测试项目工作正常。

完成应用程序测试后,可以按 CTRL + C 停止 runserver 命令。 这将使您返回到您的编程环境。

当你准备好离开你的 Python 环境时,你可以运行 deactivate 命令:

deactivate

停用您的编程环境将使您回到终端命令提示符。

结论

在本教程中,您已通过 Ubuntu APT 存储库成功升级到最新版本的 Python 3。 您还安装了 pip 3、virtualenvdjango

您现在拥有开始构建 Django Web 应用程序所需的工具。