如何在 Ubuntu 22.04 上安装 Django 网络框架

介绍

Django是一个全功能的PythonWeb框架,用于开发动态网站和应用程序。使用Django,您可以快速创建PythonWeb应用程序,并依靠框架来完成大量的重型提升。

在本指南中,您将获得Django并在Ubuntu 22.04服务器上运行。安装后,您将开始一个新的项目作为您的网站的基础。

不同的方法

有不同的方法来安装Django,取决于您的需求和您想要如何配置您的开发环境. 这些有不同的优势,一种方法可能比其他方法更适合您的特定情况。

一些不同的方法包括:

  • ** 全球从软件包安装** : 官方的Ubuntu寄存器内有Django软件包,可用传统的 " apt " 软件包管理器安装。 这很简单,但不像其他方法那样灵活。 此外,储存库中的版本可能落后于项目提供的正式版本。
  • ** 在虚拟环境中安装 " pip " ** : 可以使用venv'和virtualenv'等工具为项目创造自成一体的环境。 虚拟环境允许您在项目目录中安装Django,而不影响更大的系统,以及每个项目的其他定制和软件包. 这是与Django合作最实际和最建议的办法。
  • ** 使用'git'来安装开发版本 : 如果您希望安装最新的开发版本而不是稳定的发布,可以从Git repo获取代码. 这是获得最新特性/修补的必要条件,可以在虚拟环境中完成。 然而,发展版本并没有与更稳定的版本相同的稳定性保障。 (英语)

前提条件

在你开始之前,你应该有一个非 root 用户,在你的 Ubuntu 22.04 服务器上可以使用 sudo 特权。

全球安装从包裹

如果你想使用Ubuntu存储库安装Django,这个过程非常简单。

首先,更新您的本地包索引以apt:

1sudo apt update

接下来,检查你安装了哪个版本的Python。22.04船与Python 3.10默认,你可以通过键入来验证:

1python3 -V

你应该看到这样的输出:

1[secondary_label Output]
2Python 3.10.4

然后安装Django:

1sudo apt install python3-django

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

1django-admin --version
1[secondary_label Output]
23.2.12

这意味着软件已成功安装,您也可能注意到Django版本不是最新的稳定版本. 要了解有关如何使用该软件的更多信息,请继续学习 如何创建样本项目

在虚拟环境中使用 pip 安装

我们将向您展示如何在虚拟环境中安装Django,我们将使用venv模块创建,这是标准Python 3库的一部分。这个工具允许您创建虚拟Python环境并安装Python包,而不会影响系统的其他部分。

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

1sudo apt update

查看您已安装的 Python 版本:

1python3 -V
1[secondary_label Output]
2Python 3.10.4

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

1sudo apt install python3-pip python3-venv

现在,每次你开始一个新项目,你可以为它创建一个虚拟环境. 开始创建并移动到一个新的项目目录:

1mkdir ~/newproject
2cd ~/newproject

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

1python3 -m venv my_env

这将安装Python的独立版本和pip到您的项目目录中一个孤立的目录结构中。

要将包装安装到隔离环境中,您必须通过键入:

1source my_env/bin/activate

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

在你的新环境中,你可以使用pip来安装Django。不管你的Python版本,当你在虚拟环境中时,pip应该被称为pip

1pip install django

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

1django-admin --version
1[secondary_label Output]
24.0.4

请注意,您的版本可能与这里显示的版本有所不同。

要离开虚拟环境,您需要从系统中的任何地方发出禁用命令:

1deactivate

当您想要再次工作时,请重新激活虚拟环境,转到项目目录并激活:

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

开发版本安装与Git

如果您需要 Django 的开发版本,您可以从其 Git 存储库下载并安装 Django。

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

1sudo apt update

查看您已安装的 Python 版本:

1python3 -V
1[secondary_label Output]
2Python 3.10.4

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

1sudo apt install python3-pip python3-venv

下一步是克隆Django存储库。在发布之间,这个存储库将有更多最新的功能和错误修复,以可能的稳定性为代价。你可以将该存储库克隆到一个名为~/django-dev的目录中,键入:

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

更改此目录:

1cd ~/django-dev

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

1python3 -m venv my_env

激活它:

1source my_env/bin/activate

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

1pip install -e ~/django-dev

您可以通过键入来验证安装成功:

1django-admin --version
1[secondary_label Output]
24.0.4.2

再次,您所看到的版本可能不匹配这里所显示的版本。

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

创建一个样本项目

安装了Django,您可以开始构建您的项目,我们将讨论如何创建一个项目,并使用虚拟环境在您的开发服务器上测试它。

首先,为您的项目创建一个目录,并转换为它:

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

创建你的虚拟环境:

1python3 -m venv my_env

激活环境:

1source my_env/bin/activate

安装 Django:

1pip install django

要构建您的项目,您可以使用django-admin命令startproject。我们将我们的项目称为djangoproject,但您可以用不同的名称代替。

  • 管理脚本, manage.py,您可以使用它来管理各种 Django 特定的任务。
  • 包含实际项目代码的目录(与项目相同的名称)。

但是,为了避免有太多的嵌入式目录,让我们告诉Django将管理脚本和内部目录放入 current 目录(注意结尾点):

1django-admin startproject djangoproject .

要迁移数据库(此示例默认使用 SQLite),让我们使用迁移命令与manage.pyMigrations将您对您的 Django models所做的任何更改应用到您的数据库方案。

要迁移数据库,键入:

1python manage.py migrate

你会看到这样的输出:

 1[secondary_label Output]
 2Operations to perform:
 3  Apply all migrations: admin, auth, contenttypes, sessions
 4Running migrations:
 5  Applying contenttypes.0001_initial... OK
 6  Applying auth.0001_initial... OK
 7  Applying admin.0001_initial... OK
 8  Applying admin.0002_logentry_remove_auto_add... OK
 9  Applying admin.0003_logentry_add_action_flag_choices... OK
10  Applying contenttypes.0002_remove_content_type_name... OK
11  Applying auth.0002_alter_permission_name_max_length... OK
12  Applying auth.0003_alter_user_email_max_length... OK
13  Applying auth.0004_alter_user_username_opts... OK
14  Applying auth.0005_alter_user_last_login_null... OK
15  Applying auth.0006_require_contenttypes_0002... OK
16  Applying auth.0007_alter_validators_add_error_messages... OK
17  Applying auth.0008_alter_user_username_max_length... OK
18  Applying auth.0009_alter_user_last_name_max_length... OK
19  Applying auth.0010_alter_group_name_max_length... OK
20  Applying auth.0011_update_proxy_permissions... OK
21  Applying auth.0012_alter_user_first_name_max_length... OK
22  Applying sessions.0001_initial... OK

最后,让我们创建一个管理用户,这样你就可以使用 Djano admin interface

1python manage.py createsuperuser

您将被要求为您的用户提供用户名、电子邮件地址和密码。

在 Django 设置中更改 ALLOWED_HOSTS

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

通过键入打开设置文件:

1nano ~/django-test/djangoproject/settings.py

在内部,查找ALLOWED_HOSTS指令。这定义了可以用于连接到Django实例的地址或域名列表。带有未列入此列表的 Host 标题的输入请求会引发一个例外。

在方块中,列出与您的 Django 服务器相关的 IP 地址或域名. 每个项目都应列出报价,有单独的条目分隔一个字节。 如果您想要对整个域名和任何子域的请求,请预先预定一个期限,以开始的条目:

1[label ~/django-test/djangoproject/settings.py]
2ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

当你完成时,保存文件并离开编辑器。

测试开发服务器

一旦你有一个用户,你可以启动 Django 开发服务器,看看新 Django 项目的样子是什么样子. 你只应该使用它用于开发目的. 当你准备好部署时,一定要仔细遵循 Django 的部署指南

在尝试开发服务器之前,请确保您在防火墙中打开相应的端口. 如果您遵循最初的服务器设置指南并使用 UFW,则可以通过键入:

1sudo ufw allow 8000

启动开发服务器:

1python manage.py runserver your_server_ip:8000

请访问您的服务器的 IP 地址,其次是您的 Web 浏览器中的:8000:

1http://your_server_ip:8000

你应该看到一些看起来像这样的东西:

Django public page

要访问 admin 界面,请在 URL 末尾添加 /admin/:

1http://your_server_ip:8000/admin/

这将带你到屏幕上的日志:

Django admin login

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

Django admin page

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

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

您创建的 Django 项目为设计一个更完整的网站提供了结构基础. 查看 Django 文档,了解如何构建应用程序和定制您的网站的更多信息。

结论

您现在应该在 Ubuntu 22.04 服务器上安装 Django,提供您创建强大的 Web 应用程序所需的主要工具,您还应该知道如何启动新项目并启动开发者服务器。

如果您想了解更多关于与Django合作的信息,包括对模型(https://andsky.com/tech/tutorials/how-to-create-django-models)和视图(https://andsky.com/tech/tutorials/how-to-create-django-views)等内容的深入讨论,请参阅我们的Django开发系列(https://www.digitalocean.com/community/tutorial_series/django-development)。

Published At
Categories with 技术
comments powered by Disqus