如何在 Ubuntu 22.04 上安装 Django Web 框架

介绍

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

在本指南中,您将在Ubuntu 22.04服务器上安装Django并运行。安装完成后,您将启动一个新项目,用作站点的基础。

不同的方法

安装Django有不同的方法,取决于您的需求以及您希望如何配置开发环境。这些方法各有优势,某种方法可能比其他方法更适合您的特定情况。

一些不同的方法包括:

  • 从软件包全局安装:官方的Ubuntu仓库中包含Django软件包,可以使用传统的apt软件包管理器安装。这很简单,但不如其他一些方法灵活。此外,仓库中包含的版本可能落后于项目提供的官方版本。
  • 在虚拟环境中使用 pip 安装:您可以使用诸如 venvvirtualenv 等工具为您的项目创建一个自包含的环境。虚拟环境允许您在项目目录中安装 Django 而不影响更大的系统,以及其他每个项目的自定义和软件包。这通常是使用 Django 的最实用和推荐的方法。
  • 使用 git 安装开发版本:如果您希望安装最新的开发版本而不是稳定版本,您可以从 Git 存储库获取代码。这是获取最新功能/修复程序所必需的,并且可以在您的虚拟环境中完成。然而,开发版本没有与更稳定版本相同的稳定性保证。

先决条件

在开始之前,您应该在您的 Ubuntu 22.04 服务器上准备一个具有 sudo 权限的非 root 用户。要设置这个,请遵循我们的 Ubuntu 22.04 初始服务器设置指南

从软件包进行全局安装

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

首先,使用apt更新您的本地软件包索引:

  1. sudo apt update

接下来,检查您安装了哪个版本的Python。22.04默认使用Python 3.10,您可以通过输入以下命令进行验证:

  1. python3 -V

您应该会看到类似于以下输出:

Output
Python 3.10.4

接下来,安装Django:

  1. sudo apt install python3-django

您可以通过输入以下命令测试安装是否成功:

  1. django-admin --version
Output
3.2.12

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

在虚拟环境中使用pip安装

在系统中安装Django的最灵活方法是在虚拟环境中进行。我们将向您展示如何在使用venv模块创建的虚拟环境中安装Django,该模块是标准Python 3库的一部分。该工具允许您创建虚拟Python环境并安装Python软件包,而不会影响其余部分系统。因此,您可以基于每个项目选择Python软件包,而不受其他项目需求的冲突影响。

让我们首先刷新本地软件包索引:

  1. sudo apt update

检查已安装的Python版本:

  1. python3 -V
Output
Python 3.10.4

接下来,让我们从Ubuntu存储库安装pipvenv

  1. sudo apt install python3-pip python3-venv

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

  1. mkdir ~/newproject
  2. cd ~/newproject

然后,使用与您的Python版本兼容的python命令在项目目录中创建一个虚拟环境。我们将称其为my_env,但您应该使用一些描述性的名称:

  1. python3 -m venv my_env

这将在项目目录内的隔离目录结构中安装独立的Python和pip版本。将创建一个以您选择的名称命名的目录,其中将保存您的软件包安装的文件层次结构。

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

  1. source my_env/bin/activate

您的提示符应该会变化,反映您现在位于虚拟环境中。它将类似于(my_env)username@hostname:~/newproject$

在您的新环境中,您可以使用pip来安装Django。无论您的Python版本如何,在虚拟环境中都只需称其为pip。还请注意,您不需要使用sudo,因为您是本地安装:

  1. pip install django

您可以通过输入以下命令来验证安装:

  1. django-admin --version
Output
4.0.4

请注意,您的版本可能与此处显示的版本不同。

要退出虚拟环境,您需要在系统的任何位置发出deactivate命令:

  1. deactivate

您的提示符应该恢复为常规显示。 当您想再次处理项目时,请返回到项目目录并激活您的虚拟环境:

  1. cd ~/newproject
  2. source my_env/bin/activate

使用 Git 安装开发版本

如果您需要 Django 的开发版本,您可以从其 Git 存储库下载并安装 Django。 让我们在虚拟环境中进行此操作。

首先,让我们更新本地软件包索引:

  1. sudo apt update

检查您安装的 Python 版本:

  1. python3 -V
Output
Python 3.10.4

接下来,从官方存储库安装 pipvenv

  1. sudo apt install python3-pip python3-venv

下一步是克隆 Django 存储库。 在发布之间,该存储库将具有更多最新功能和可能稳定性损失的错误修复。 您可以通过键入以下内容将存储库克隆到名为 ~/django-dev 的目录中:

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

切换到此目录:

  1. cd ~/django-dev

使用与您安装的 Python 版本兼容的 python 命令创建虚拟环境:

  1. python3 -m venv my_env

激活它:

  1. source my_env/bin/activate

接下来,您可以使用pip安装存储库。 -e选项将以“可编辑”模式安装,这在从版本控制安装时是必需的:

  1. pip install -e ~/django-dev

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

  1. django-admin --version
Output
4.0.4.2

再次强调,您看到的版本可能与此处显示的不匹配。

您现在在虚拟环境中拥有最新版本的Django。

创建一个示例项目

有了Django安装好后,您可以开始构建您的项目。我们将介绍如何在虚拟环境中创建一个项目并在开发服务器上测试它。

首先,为您的项目创建一个目录并切换到该目录:

  1. mkdir ~/django-test
  2. cd ~/django-test

接下来,创建您的虚拟环境:

  1. python3 -m venv my_env

激活环境:

  1. source my_env/bin/activate

安装Django:

  1. pip install django

要构建您的项目,您可以使用django-adminstartproject命令。我们将项目命名为djangoproject,但您可以用其他名称替换它。startproject将在当前工作目录中创建一个包含以下内容的目录:

  • A management script, manage.py, which you can use to administer various Django-specific tasks.
  • A directory (with the same name as the project) that includes the actual project code.

为了避免有太多嵌套目录,让我们告诉Django将管理脚本和内部目录放在当前目录中(注意结尾的句点):

  1. django-admin startproject djangoproject .

迁移数据库(此示例默认使用SQLite),让我们使用manage.py命令来执行migrate迁移会将您对Django 模型所做的任何更改应用到数据库模式中。

要迁移数据库,请键入:

  1. python manage.py migrate

您将看到以下输出:

Output
Operations 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 auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK

最后,让我们创建一个管理用户,这样您就可以使用Djano管理界面。 让我们使用createsuperuser命令来执行此操作:

  1. python manage.py createsuperuser

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

修改Django设置中的ALLOWED_HOSTS

要成功测试您的应用程序,您需要修改Django设置中的一个指令。

通过键入打开设置文件:

  1. 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

  1. sudo ufw allow 8000

启动开发服务器:

  1. python manage.py runserver your_server_ip:8000

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

http://your_server_ip:8000

您应该会看到类似这样的内容:

要访问管理员界面,请在您的URL末尾添加/admin/

http://your_server_ip:8000/admin/

这将带您到登录界面:

如果您输入刚刚创建的管理员用户名和密码,您将可以访问网站的主要管理员部分:

有关使用Django管理员界面的更多信息,请参阅“如何启用和连接Django管理员界面。”

当您完成查看默认网站时,可以通过在终端中键入CTRL-C来停止开发服务器。

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

结论

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

如果您想获取有关使用Django的更多信息,包括关于模型视图等内容的深入讨论,请参阅我们的Django开发系列

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-22-04