快速上手:Ubuntu上的 Django 框架安装与配置

引言

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

本指南将帮助你在Ubuntu 服务器上安装并运行Django。安装完成后,你将开始一个新项目,作为你网站的基石。

安装方法

根据你的需求和你想要如何配置你的开发环境,有多种安装Django的方法。这些方法各有优势,一种方法可能比其他方法更适合你的具体情况。

一些不同的方法包括:

  • 全局安装包:官方Ubuntu仓库包含Django包.
  • 在虚拟环境中使用pip安装:你可以使用venvvirtualenv等工具为你的项目创建一个自包含的环境。
  • 使用git安装开发版本:如果你想安装最新开发版本而不是稳定版本,你可以从Git仓库获取代码。

先决条件

要完成本教程,你需要:

需要一个已设置的Ubuntu服务器,具有非root用户,具有sudo权限,并启用了防火墙以阻止非必要的端口。

设置完成后,以的非root用户身份登录并进行第一步。

建议使用至少有以下配置的服务器:

4 核心的 CPU,4GB 的内存

选择服务器提供商
为了本教程的演示,我将以一个具体的云服务提供商为例,展示如何进行操作。选择哪个提供商根据个人偏好和需求来决定。

以下步骤仅供参考,请根据实际需求选择配置。

购买云服务器
本示例中,我们选择了香港作为服务器区域。

点击 云产品云服务器立即购买

选择操作系统
在创建服务器实例时,选择 Ubuntu 作为操作系统。

连接到服务器
使用 X-shell 或偏好的 SSH 客户端,通过远程用户名和密码连接到服务器。成功连接后,将看到特定的欢迎信息,表明已成功登录。

https://syxoss.oss-cn-hangzhou.aliyuncs.com/Typora202411211021991.png

全局安装包

如果你想使用Ubuntu仓库安装Django,过程非常简单。

首先,使用apt更新你的本地包索引:

sudo apt update

接下来,检查你安装的Python版本。默认安装Python 3.10,你可以通过输入以下命令来验证:

python3 -V

你应该看到类似这样的输出:

Python 3.10.4

接下来,安装Django:

sudo apt install python3-django

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

django-admin --version
3.2.12

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

在虚拟环境中使用pip安装

在系统中安装Django最灵活的方式是在虚拟环境中安装。我们将向你展示如何在我们将要创建的虚拟环境中使用venv模块安装Django,venv模块是Python 3标准库的一部分。

首先,刷新本地包索引:

sudo apt update

接下来,从Ubuntu仓库安装pipvenv

sudo apt install python3-pip python3-venv

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

mkdir ~/newproject
cd ~/newproject

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

python3 -m venv my_env

这将在你项目目录内安装独立的Python和pip版本到一个隔离的目录结构中。将创建一个以你选择的名字命名的目录,其中将包含你的包将被安装的文件层次结构。

要在隔离环境中安装包,你必须通过输入以下命令激活它:

source my_env/bin/activate

你的提示符应该反映出你现在处于你的虚拟环境中。它看起来应该像(my_env)username@hostname:~/newproject$

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

pip install django

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

django-admin --version
4.0.4

请注意,你看到的版本可能与这里显示的版本不同。

要离开你的虚拟环境,你需要从系统上的任何地方发出deactivate命令:

deactivate

你的提示符应该恢复到常规显示。当你想再次开始你的项目时,重新激活你的虚拟环境:

cd ~/newproject
source my_env/bin/activate

开发版本安装与Git

如果你需要Django的开发版本,你可以从它的Git仓库下载并安装Django。让我们在虚拟环境中完成这个操作。

首先,更新本地包索引:

sudo apt update

检查你安装的Python版本:

python3 -V
Python 3.10.4

接下来,从官方仓库安装pipvenv

sudo apt install python3-pip python3-venv

下一步是克隆Django仓库。在版本发布之间,这个仓库将拥有更更新的功能和bug修复,可能以牺牲稳定性为代价。你可以通过输入以下命令将仓库克隆到名为~/django-dev的目录中:

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

切换到这个目录:

cd ~/django-dev

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

python3 -m venv my_env

激活它:

source my_env/bin/activate

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

pip install -e ~/django-dev

你可以通过输入以下命令来验证安装是否成功:

django-admin --version
4.0.4.2

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

创建示例项目

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

首先,为你的项目创建一个目录并进入它:

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

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

python3 -m venv my_env

激活环境:

source my_env/bin/activate

安装Django:

pip install django

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

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

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

django-admin startproject djangoproject .

要迁移数据库(这个例子默认使用SQLite),让我们使用manage.pymigrate命令。迁移将你所做的Django模型更改应用到你的数据库模式中。

要迁移数据库,输入以下命令:

python manage.py migrate

最后,让我们创建一个管理员用户,以便你可以使用Django管理界面。使用createsuperuser命令来完成这个操作:

python manage.py createsuperuser

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

修改Django设置中的ALLOWED_HOSTS

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

通过输入以下命令打开设置文件:

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

在里面,找到ALLOWED_HOSTS指令。这定义了一个地址或域名列表,这些地址或域名可以用来连接Django实例。一个带有不在列表中的Host头的传入请求将引发异常。Django要求你设置这个以防止某种安全漏洞。

在方括号内,列出与你Django服务器相关的IP地址或域名。每个项目应该用引号列出,用逗号分隔。如果你想为整个域及其子域请求,就在条目的开头加上一个点:

ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', ...]

完成后,保存文件并退出编辑器。

测试开发服务器

一旦你有了用户,你可以启动Django开发服务器来查看一个全新的Django项目是什么样子。你只能将这个用于开发目的。当你准备部署时,确保仔细遵循Django的部署指南。

在你尝试开发服务器之前,请确保你在防火墙中打开相应的端口。如果你按照初始服务器设置指南操作并使用UFW,你可以通过输入以下命令打开端口8000

sudo ufw allow 8000

启动开发服务器:

python manage.py runserver your_server_ip:8000

在你的Web浏览器中访问你服务器的IP地址,后面跟着:8000

http://your_server_ip:8000

你应该看到类似这样的页面:

Django项目首页

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

http://your_server_ip:8000/admin/

这将带你到一个登录屏幕:

如果你输入刚刚创建的管理员用户名和密码,你将能够访问网站的主管理部分:

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

当你完成浏览默认网站后,可以通过在终端中输入CTRL-C来停止开发服务器。

你创建的Django项目为设计一个更完整的网站提供了结构基础。

结论

你现在应该已经在Ubuntu服务器上安装了Django,提供了创建强大Web应用程序所需的主要工具。