如何在 Ubuntu 18.04 上安装 Django

Django 是一个免费开源的 Python Web 框架,用于开发动态网站和应用。在本文中,我们将在 Ubuntu 18.04 服务器上安装并运行 Django。

安装Django的方法

根据开发环境的不同,我们可以采用不同的方式来安装Django,包括:

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

环境条件

本文教程是在 Ubuntu 18.04 服务器上进行的,且拥有一个有 sudo 权限的非 root 用户。

通过包管理器安装

如果通过 Ubuntu 软件库安装 Django,先使用以下命令更新本地包索引:

sudo apt update

接下来,检查系统安装的 Python 版本。默认情况下,18.04 安装的是 Python 3.6 版本,可以通过以下命令来验证:

python3 -V

应该会看到下面的输出:

Output
Python 3.6.5

接下来,安装 Django:

sudo apt install python3-django

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

django-admin --version
Output
1.11.11

这意味着该软件已成功安装。

在虚拟环境中使用 pip 安装

安装 Django 的最灵活方法,是在虚拟环境中安装。通过 venv 模块创建虚拟环境,然后在其中安装 Django,这样就不会影响系统的其余部分。因此,可以在不同项目上选择不同的 Python 包,而不会产生冲突。

首先更新本地软件包索引:

sudo apt update

检查安装的 Python 版本:

python3 -V
Output
Python 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 安装 django。这里并不需要使用 sudo,因为是在虚拟环境本地安装:

pip install django

可以通过以下命令来验证安装版本:

django-admin --version
Output
2.1

要离开虚拟环境,只需要使用 deactivate 命令:

deactivate

然后恢复为常规显示。当需要再次处理项目时,重新回到项目目录,并重新激活虚拟环境:

cd ~/newproject
source my_env/bin/activate

使用 Git 安装开发版本

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

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

sudo apt update

检查安装的 Python 版本:

python3 -V
Output
Python 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 命令创建虚拟环境:

python3.6 -m venv my_env

激活:

source my_env/bin/activate

接下来,可以使用 pip 安装 django:

pip install -e ~/django-dev

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

django-admin --version
Output
2.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 命令来构建项目。我们将项目命名为 djangoproject,您可以将其替换为自己的名称。startproject 将在当前的工作目录中创建一个目录,其中包括:

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

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

django-admin startproject djangoproject .

要迁移数据库,请执行:

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

要测试应用程序,需要修改 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 服务器。先要确保在防火墙中打开了相应的端口:

sudo ufw allow 8000

启动服务器:

python manage.py runserver your_server_ip:8000

访问服务器的 IP 地址加上端口号:8000,然后在浏览器中访问:

http://your_server_ip:8000

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

Django 公共页面

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

http://your_server_ip:8000/admin/

然后会进入登录页面:

Django 管理员登录

输入刚刚创建的用户名和密码,将可以访问网站的管理后台:

Django 管理页面

通过按 CTRL-C 在终端中退出。

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/ubuntu-18-04-install-django/

(0)
牛奇网牛奇网
上一篇 2022年1月16日 下午1:23
下一篇 2022年1月17日 下午2:47

相关推荐

发表回复

登录后才能评论