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

Django 是一个用 Python 编写的 Web 应用程序框架,可用于开发动态网站和应用程序,遵循 MVC(模型-视图-控制器)架构,它是开源的可免费下载使用。

在本文中,牛奇网向您介绍在 Ubuntu 20.04 服务器上,如何安装 Django。

根据需求以及开发环境的不同,有多种安装 Django 的方法。安装方法包括:

  • 从包全局安装:Ubuntu 官方存储库包含可以使用 apt 包管理器安装的 Django 包。此方法简单,但不如其他方法灵活。此外,存储库中包含的版本可能落后于项目提供的官方版本。
  • pip 在虚拟环境中安装:可以使用 venv 和 virtualenv 等工具,创建一个虚拟环境。虚拟环境允许在项目目录中安装 Django,而不会对系统产生影响。这通常是使用 Django 的最推荐的方法。
  • 使用 git 安装开发版本:如果希望安装最新的开发版本而不是稳定版本,可以从 Git 存储库获取代码。然而,开发版本的稳定性可能没那么高。

在开始之前,应该在 Ubuntu 20.04 服务器上有一个具有 sudo 权限的非 root 用户。

从存储库全局安装

如果希望使用 Ubuntu 存储库安装 Django,过程非常简单。

首先,使用 apt 命令更新本地包索引:

sudo apt update

接下来,检查安装的 Python 版本。默认情况下,20.04 附带的是 Python 3.8 版本,可以通过输入以下命令进行验证:

python3 -V

应该看到这样的输出:

Output
Python 3.8.2

接下来,安装 Django:

sudo apt install python3-django

可以通过执行以下命令来测试安装是否成功:

django-admin --version
Output
2.2.12

这意味着 django 已成功安装。

在虚拟环境中使用 pip 安装

安装 Django 的最灵活方法是在虚拟环境中。接下来,我们介绍一下如何使用 venv 模块创建的虚拟环境中安装 Django,该模块是 Python 3 标准库的一部分。此工具允许创建虚拟 Python 环境并安装 Python 包,而不会影响系统的其余部分。因此,可以在每个项目的基础上选择 Python 包,而不会与其他项目的要求产生冲突。

首先,刷新本地包索引:

sudo apt update

检查安装的 Python 版本:

python3 -V
Output
Python 3.8.2

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

sudo apt install python3-pip python3-venv

现在,每开始一个新项目时,都可以为其创建一个虚拟环境。

首先,创建并进入到一个新的项目目录:

mkdir ~/newproject
cd ~/newproject

接下来,在项目目录中创建一个虚拟环境。我们将我们的虚拟环境命名为 my_env,但命名最好具有描述性:

python3 -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
Output
3.0.8

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

要离开虚拟环境,请执行 deactivate 命令:

deactivate

当想要再次处理项目的时候,通过进入项目目录并重新激活虚拟环境:

cd ~/newproject
source my_env/bin/activate

使用 Git 安装开发版本

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

首先,更新本地包索引:

sudo apt update

检查安装的 Python 版本:

python3 -V
Output
Python 3.8.2

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

sudo apt install python3-pip python3-venv

下一步是克隆 Django 存储库。与官方存储库的版本相比,此存储库版本拥有更多最新功能,修复了更多错误,但可能稳定性不高。可以通过执行以下命令,将存储库克隆到主目录中名为 ~/django-dev 的目录:

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

切换到这个目录:

cd ~/django-dev

使用 python 命令创建虚拟环境:

python3 -m venv my_env

激活它:

source my_env/bin/activate

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

pip install -e ~/django-dev

可以通过执行以下命令来验证安装是否成功:

django-admin --version
Output
3.2

现在就已经在虚拟环境中安装了最新版本的 Django。

创建示例项目

安装 Django 后,可以开始构建项目。接下来我们介绍,如何创建项目,并使用虚拟环境在服务器上对其进行测试。

首先,为项目创建一个目录,并进入该目录:

mkdir ~/django-test
cd ~/django-test

接下来,创建虚拟环境:

python3 -m venv my_env

激活环境:

source my_env/bin/activate

安装 Django:

pip install django

要构建项目,可以使用带 startproject 的 django-admin 命令。将我们的项目命名为 djangoproject,大家可以根据需要将其替换为不同的名称。startproject 将在当前的工作目录中创建一个目录,其中包括:

  • 一个 manage.py 管理脚本,可用于管理各种 Django 任务。
  • 包含实际项目代码的目录(与项目同名)。

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

django-admin startproject djangoproject .

要迁移数据库(此示例默认使用 SQLite),我们在 manage.py 后加一个 migrate 命令,将对 Django模型所做的更改应用于数据库架构。

要迁移数据库,请执行:

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 sessions.0001_initial... OK

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

python manage.py createsuperuser

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

在 Django 设置中修改 ALLOWED_HOSTS

编辑配置文件:

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 项目是什么样子的。开发服务器仅用于开发目的。

如果开启了防火墙,先确保在防火墙中打开了 8000 端口。

sudo ufw allow 8000

启动开发服务器:

python manage.py runserver your_server_ip:8000

在浏览器中访问访问服务器的 IP 地址,记住在 IP 地址后要加:8000 :

http://your_server_ip:8000

应该会看到如下所示的内容:

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

要访问管理界面,请添加 /admin/ 到 URL 的末尾:

http://your_server_ip:8000/admin/

将进入管理后台登录:

如何在 Ubuntu 20.04 上安装 Django Web 框架
Django 登录页面

输入刚刚创建的管理员用户名和密码,就可以访问站点的管理后台了:

如何在 Ubuntu 20.04 上安装 Django Web 框架
Django 管理后台

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

浏览完默认站点后,可以通过按 CTRL-C 来退出开发服务器。

原创文章,作者:牛奇网,如若转载,请注明出处:https://www.niuqi360.com/linux/install-django-on-ubuntu-20-04/

发表评论

登录后才能评论