引言
Django是一个功能齐全的Python Web框架,用于开发动态网站和应用程序。使用Django,你可以快速创建Python Web应用程序,并依赖框架完成大量繁重的工作。
本指南将帮助你在Ubuntu 服务器上安装并运行Django。安装完成后,你将开始一个新项目,作为你网站的基石。
安装方法
根据你的需求和你想要如何配置你的开发环境,有多种安装Django的方法。这些方法各有优势,一种方法可能比其他方法更适合你的具体情况。
一些不同的方法包括:
- 全局安装包:官方Ubuntu仓库包含Django包.
- 在虚拟环境中使用
pip
安装:你可以使用venv
和virtualenv
等工具为你的项目创建一个自包含的环境。 - 使用
git
安装开发版本:如果你想安装最新开发版本而不是稳定版本,你可以从Git仓库获取代码。
先决条件
要完成本教程,你需要:
需要一个已设置的Ubuntu服务器,具有非root用户,具有sudo
权限,并启用了防火墙以阻止非必要的端口。
设置完成后,以的非root用户身份登录并进行第一步。
建议使用至少有以下配置的服务器:
4 核心的 CPU,4GB 的内存
选择服务器提供商
为了本教程的演示,我将以一个具体的云服务提供商为例,展示如何进行操作。选择哪个提供商根据个人偏好和需求来决定。
以下步骤仅供参考,请根据实际需求选择配置。
购买云服务器
本示例中,我们选择了香港作为服务器区域。
点击 云产品 → 云服务器 → 立即购买
选择操作系统
在创建服务器实例时,选择 Ubuntu 作为操作系统。
连接到服务器
使用 X-shell 或偏好的 SSH 客户端,通过远程用户名和密码连接到服务器。成功连接后,将看到特定的欢迎信息,表明已成功登录。
全局安装包
如果你想使用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仓库安装pip
和venv
:
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
接下来,从官方仓库安装pip
和venv
:
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-admin
和startproject
命令。我们将我们的项目称为djangoproject
,但你可以用不同的名字替换它。startproject
将在你当前的工作目录中创建一个目录,其中包含:
- 一个管理脚本
manage.py
,你可以用它来管理各种Django特定的任务。 - 一个目录(与项目同名),其中包含实际的项目代码。
为了避免有太多的嵌套目录,让我们告诉Django将管理脚本和内部目录放在_当前_目录中(注意结尾的点):
django-admin startproject djangoproject .
要迁移数据库(这个例子默认使用SQLite),让我们使用manage.py
的migrate
命令。迁移将你所做的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
你应该看到类似这样的页面:
要访问管理界面,请在URL末尾添加/admin/
:
http://your_server_ip:8000/admin/
这将带你到一个登录屏幕:
如果你输入刚刚创建的管理员用户名和密码,你将能够访问网站的主管理部分:
有关使用Django管理界面的更多信息,请参见“如何启用和连接Django管理界面”。
当你完成浏览默认网站后,可以通过在终端中输入CTRL-C
来停止开发服务器。
你创建的Django项目为设计一个更完整的网站提供了结构基础。
结论
你现在应该已经在Ubuntu服务器上安装了Django,提供了创建强大Web应用程序所需的主要工具。