介绍
Django 是一个功能齐全的 Python Web 框架,用于开发动态网站和应用程序。 使用 Django,您可以快速创建 Python Web 应用程序并依靠该框架完成大量繁重的工作。
在本指南中,您将在 Ubuntu 18.04 服务器上启动并运行 Django。 安装后,您将启动一个新项目以用作站点的基础。
不同的方法
安装 Django 有不同的方法,具体取决于您的需求以及您希望如何配置开发环境。 这些具有不同的优势,一种方法可能比其他方法更适合您的具体情况。
一些不同的方法包括:
- 从包全局安装:官方的 Ubuntu 存储库包含可以使用传统的
apt
包管理器安装的 Django 包。 这很简单,但不如其他一些方法灵活。 此外,存储库中包含的版本可能落后于项目中可用的官方版本。 - 在虚拟环境中使用 pip 安装:您可以使用
venv
和virtualenv
等工具为您的项目创建一个独立的环境。 虚拟环境允许您在项目目录中安装 Django,而不会影响更大的系统,以及其他每个项目的自定义和包。 这通常是使用 Django 最实用和推荐的方法。 - Development version install with git:如果你想安装最新的开发版本而不是稳定版本,你可以从 Git repo 获取代码。 这是获得最新功能/修复所必需的,并且可以在您的虚拟环境中完成。 但是,开发版本没有与更稳定版本相同的稳定性保证。
先决条件
在开始之前,您应该在 Ubuntu 18.04 服务器上拥有一个具有 sudo 权限的非 root 用户。 要进行此设置,请按照我们的 Ubuntu 18.04 初始服务器设置指南 。
从包全局安装
如果您希望使用 Ubuntu 存储库安装 Django,该过程非常简单。
首先,用 apt
更新你的本地包索引:
sudo apt update
接下来,检查您安装了哪个版本的 Python。 默认情况下,18.04 附带 Python 3.6,您可以通过键入以下内容进行验证:
python3 -V
你应该看到这样的输出:
OutputPython 3.6.5
接下来,安装 Django:
sudo apt install python3-django
您可以通过键入以下内容来测试安装是否成功:
django-admin --version
Output1.11.11
这意味着该软件已成功安装。 您可能还注意到 Django 版本不是最新的稳定版本。 要了解有关如何使用该软件的更多信息,请跳过学习如何创建示例项目。
在虚拟环境中使用 pip 安装
在您的系统上安装 Django 最灵活的方法是在虚拟环境中。 我们将向您展示如何在虚拟环境中安装 Django,我们将使用标准 Python 3 库的一部分 venv
模块创建该环境。 该工具允许您创建虚拟 Python 环境并安装 Python 包,而不会影响系统的其余部分。 因此,您可以基于每个项目选择 Python 包,而不管与其他项目的要求是否冲突。
让我们从刷新本地包索引开始:
sudo apt update
检查已安装的 Python 版本:
python3 -V
OutputPython 3.6.5
接下来,让我们从 Ubuntu 存储库安装 pip
:
sudo apt install python3-pip
安装 pip
后,您可以使用它来安装 venv
包:
sudo apt install python3-venv
现在,每当您开始一个新项目时,您都可以为它创建一个虚拟环境。 首先创建并移动到一个新的项目目录:
mkdir ~/newproject cd ~/newproject
接下来,使用与您的 Python 版本兼容的 python
命令在项目目录中创建一个虚拟环境。 我们将我们的虚拟环境称为 my_env
,但您应该将其命名为描述性的:
python3.6 -m venv my_env
这会将 Python 和 pip
的独立版本安装到项目目录中的独立目录结构中。 将使用您选择的名称创建一个目录,该目录将保存安装包的文件层次结构。
要将软件包安装到隔离环境中,您必须通过键入以下命令来激活它:
source my_env/bin/activate
您的提示应该更改以反映您现在处于虚拟环境中。 它看起来像 (my_env)username@hostname:~/newproject$
。
在您的新环境中,您可以使用 pip
来安装 Django。 无论你的 Python 版本是什么,当你在虚拟环境中时,pip
都应该被称为 pip
。 另请注意,您 不需要 需要使用 sudo
,因为您是在本地安装:
pip install django
您可以通过键入以下内容来验证安装:
django-admin --version
Output2.1
请注意,您的版本可能与此处显示的版本不同。
要离开您的虚拟环境,您需要从系统上的任何位置发出 deactivate
命令:
deactivate
您的提示应该恢复到常规显示。 当您希望再次处理您的项目时,请通过移回您的项目目录并激活来重新激活您的虚拟环境:
cd ~/newproject source my_env/bin/activate
使用 Git 安装开发版本
如果您需要 Django 的开发版本,您可以从其 Git 存储库下载并安装 Django。 让我们在虚拟环境中执行此操作。
首先,让我们更新本地包索引:
sudo apt update
检查已安装的 Python 版本:
python3 -V
OutputPython 3.6.5
接下来,从官方存储库安装 pip
:
sudo apt install python3-pip
安装 venv
包来创建你的虚拟环境:
sudo apt install python3-venv
下一步是克隆 Django 存储库。 在发布之间,此存储库将具有更多最新功能和错误修复,但可能会牺牲稳定性。 您可以通过键入以下命令将存储库克隆到主目录中名为 ~/django-dev
的目录:
git clone git://github.com/django/django ~/django-dev
切换到这个目录:
cd ~/django-dev
使用与您安装的 Python 版本兼容的 python
命令创建虚拟环境:
python3.6 -m venv my_env
激活它:
source my_env/bin/activate
接下来,您可以使用 pip
安装存储库。 -e
选项将以“可编辑”模式安装,这在从版本控制安装时是必需的:
pip install -e ~/django-dev
您可以通过键入以下内容来验证安装是否成功:
django-admin --version
Output2.2.dev20180802155335
同样,您看到的版本可能与此处显示的不匹配。
您现在在虚拟环境中拥有最新版本的 Django。
创建示例项目
安装 Django 后,您可以开始构建您的项目。 我们将介绍如何创建项目并使用虚拟环境在您的开发服务器上对其进行测试。
首先,为您的项目创建一个目录并更改为该目录:
mkdir ~/django-test cd ~/django-test
接下来,创建您的虚拟环境:
python3.6 -m venv my_env
激活环境:
source my_env/bin/activate
安装 Django:
pip install django
要构建您的项目,您可以使用 django-admin
和 startproject
命令。 我们将调用我们的项目 djangoproject
,但您可以将其替换为不同的名称。 startproject
将在您当前的工作目录中创建一个目录,其中包括:
- 一个管理脚本
manage.py
,您可以使用它来管理各种 Django 特定的任务。 - 包含实际项目代码的目录(与项目同名)。
然而,为了避免嵌套目录过多,让我们告诉 Django 将管理脚本和内部目录放在 current 目录中(注意结束点):
django-admin startproject djangoproject .
要迁移数据库(本示例默认使用 SQLite),让我们将 migrate
命令与 manage.py
一起使用。 Migrations 将您对 Django models 所做的任何更改应用到数据库模式。
要迁移数据库,请键入:
python manage.py migrate
您将看到如下输出:
OutputOperations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying sessions.0001_initial... OK
最后,让我们创建一个管理用户,以便您可以使用Djano 管理界面。 让我们使用 createsuperuser
命令执行此操作:
python manage.py createsuperuser
系统将提示您输入用户名、电子邮件地址和密码。
在 Django 设置中修改 ALLOWED_HOSTS
要成功测试您的应用程序,您需要修改 Django 设置中的指令之一。
通过键入以下内容打开设置文件:
nano ~/django-test/djangoproject/settings.py
在里面,找到 ALLOWED_HOSTS
指令。 这定义了可用于连接到 Django 实例的地址或域名的白名单。 带有不在此列表中的 Host 标头的传入请求将引发异常。 Django 要求您设置它以防止某一类安全漏洞。
在方括号中,列出与您的 Django 服务器关联的 IP 地址或域名。 每个项目都应该用引号列出,单独的条目用逗号分隔。 如果您想要对整个域和任何子域的请求,请在条目的开头添加一个句点:
~/django-test/djangoproject/settings.py
. . . ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]
完成后,保存文件并退出编辑器。
测试开发服务器
一旦你有了一个用户,你就可以启动 Django 开发服务器来看看一个新的 Django 项目是什么样子的。 您应该仅将其用于开发目的。 当您准备好部署时,请务必仔细遵循 Django 的部署指南。
在您尝试开发服务器之前,请确保您在防火墙中打开了适当的端口。 如果您遵循初始服务器设置指南并使用 UFW,您可以通过键入以下命令打开端口 8000
:
sudo ufw allow 8000
启动开发服务器:
python manage.py runserver your_server_ip:8000
在 Web 浏览器中访问服务器的 IP 地址,然后访问 :8000
:
http://your_server_ip:8000
您应该会看到如下所示的内容:
要访问管理界面,请将 /admin/
添加到 URL 的末尾:
http://your_server_ip:8000/admin/
这将带您进入登录屏幕:
如果您输入刚刚创建的管理员用户名和密码,您将可以访问该站点的主要管理部分:
有关使用 Django 管理界面的更多信息,请参阅 “如何启用和连接 Django 管理界面”。
浏览完默认站点后,您可以通过在终端中键入 CTRL-C
来停止开发服务器。
您创建的 Django 项目为设计更完整的站点提供了结构基础。 查看 Django 文档以获取有关如何构建应用程序和自定义站点的更多信息。
结论
您现在应该在您的 Ubuntu 18.04 服务器上安装了 Django,它提供了创建强大的 Web 应用程序所需的主要工具。 您还应该知道如何启动一个新项目并启动开发人员服务器。 利用像 Django 这样的完整 Web 框架可以帮助加快开发速度,让您只专注于应用程序的独特方面。
如果您想了解有关使用 Django 的更多信息,包括对 models 和 views 等内容的深入讨论,请参阅我们的 Django 开发系列。