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 存储库安装 pip
和 venv
:
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
接下来,从官方存储库安装 pip
和 venv
:
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 地址后要加:800
0 :
http://your_server_ip:8000
应该会看到如下所示的内容:
要访问管理界面,请添加 /admin/
到 URL 的末尾:
http://your_server_ip:8000/admin/
将进入管理后台登录:
输入刚刚创建的管理员用户名和密码,就可以访问站点的管理后台了:
有关使用 Django 管理界面的更多信息,请参阅“如何启用和连接 Django 管理界面”。
浏览完默认站点后,可以通过按 CTRL-C
来退出开发服务器。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/install-django-on-ubuntu-20-04/