介绍
Django 是一个用 Python 编写的免费开源 Web 框架,它遵循模型模板视图 (MTV)软件架构模式。MTV 模式是 Django 对模型-视图-控制器 (MVC)模式的采用。根据 Django 软件基金会的说法,模型是数据的唯一权威来源,视图描述了通过 Python 回调函数呈现给用户的特定 URL 的数据,模板是 Django 动态生成 HTML 的方式。
Django 的核心原则是可扩展性、可重用性和快速开发。它还以其框架级的一致性和松散耦合而闻名,允许各个组件相互独立。不要重复自己(DRY 编程)是 Django 原则的一个组成部分。
在本教程中,我们将搭建一个 Django 开发环境。我们将安装 Python 3、pip 3、Django,virtualenv
以便为您提供使用 Django 开发 Web 应用程序所需的工具。
先决条件
具有sudo
在 Debian 或 Ubuntu Linux 服务器上设置的权限的非 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 版本与服务器的全局环境隔离时,这是理想的选择。 -
选项 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 防火墙,则可以HTTP
从入站规则中进行选择。您可以阅读介绍性教程的入站规则部分,了解有关 DigitalOcean 防火墙和为其创建规则的更多信息。
启动项目
我们现在可以使用django-admin
Python 中的命令行实用程序来生成管理任务的应用程序。然后我们可以使用该startproject
命令为我们的测试网站创建项目目录结构。
在django-apps
目录中,运行以下命令:
- django-admin startproject testsite
注意:运行该命令将同时命名项目目录和项目包,并在运行该命令的目录中创建项目。如果提供了可选参数,Django 将使用提供的目标目录作为项目目录,并在其中创建项目包。django-admin startproject <projectname>
<projectname>
<destination>
manage.py
现在我们可以查看刚刚创建的项目文件。导航到该testsite
目录,然后列出该目录的内容以查看创建了哪些文件:
- cd testsite
- ls
Outputmanage.py testsite
您会注意到输出显示此目录包含一个manage.py
名为testsite
. 该manage.py
文件类似于django-admin
并将项目的包放在sys.path
. 这还将DJANGO_SETTINGS_MODULE
环境变量设置为指向您的项目settings.py
文件。
您可以manage.py
通过运行如下less
命令在终端中查看脚本:
- 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地址添加到列表ALLOWED_HOSTS
中settings.py
位于文件~/test_django_app/testsite/testsite/
。
正如Django 文档中所述,该ALLOWED_HOSTS
变量包含“一个字符串列表,表示该 Django 站点可以提供的主机/域名。这是一种防止 HTTP Host 标头攻击的安全措施,即使在许多看似安全的 Web 服务器配置下也是可能的。”
您可以使用您喜欢的文本编辑器添加您的 IP 地址。例如,如果您正在使用nano
,只需运行以下命令:
- nano ~/django-apps/testsite/testsite/settings.py
运行该命令后,您需要导航到文档的“允许的主机”部分,并在方括号内的单引号或双引号内添加服务器的 IP 地址。
"""
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']
...
您可以通过按住CTRL
+x
键然后按y
键来保存更改并退出 nano 。
完成此操作后,请务必导航回所在的目录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 virtualenv
、 和django
。
您现在拥有开始构建 Django Web 应用程序所需的工具。