如何在Ubuntu22.04上安装Django并设置开发环境

来自菜鸟教程
跳转至:导航、​搜索

介绍

Django 是一个用 Python 编写的免费开源 Web 框架,其核心原则是可扩展性、可重用性和快速开发。 它还以其框架级别的一致性和松散耦合而闻名,允许各个组件相互独立。

在本教程中,您将在 Ubuntu 22.04 服务器上设置用于开发目的 的 Django 环境 。 对于实时网站,您将有其他注意事项,包括连接到数据库、设置域名和添加安全层。 在 Django 标签 下构建时,有各种关于 Django 的教程可以帮助您。

先决条件

为了完成本教程,您需要:

  • 具有 sudo 权限的非 root 用户帐户,您可以通过遵循并完成 Ubuntu 22.04 初始服务器设置教程来实现。
  • Python 3 设置了虚拟编程环境。 您可以通过 Python 3 安装指南 进行设置。

第 1 步 — 安装 Django

有几种方法可以安装 Django,即虚拟环境中的 Python 包管理器 pip。

在服务器的主目录中,您将创建包含 Django 应用程序的目录。 运行以下命令以创建一个名为 django-apps 或您选择的其他名称的目录。 然后导航到目录。

mkdir django-apps
cd django-apps

django-apps 目录中,创建您的虚拟环境。 您可以将其称为通用的 env,但您应该使用对您和您的项目有意义的名称。

virtualenv env

现在,使用以下命令激活虚拟环境:

. env/bin/activate

一旦前缀更改为 (env),您就会知道它已被激活,这将类似于以下内容,具体取决于您所在的目录:


在环境中,使用 pip 安装 Django 包。 安装 Django 允许我们创建和运行 Django 应用程序。

pip install django

安装后,通过运行版本检查来验证您的 Django 安装:

django-admin --version

这或类似的东西将是结果输出:

Output4.0.3

在您的服务器上安装 Django 后,您可以继续创建一个测试项目以确保一切正常。 您将创建一个骨架 Web 应用程序。

第 2 步 — 调整防火墙设置

如果您遵循初始服务器设置教程或在您的服务器上运行防火墙,则需要打开您将在服务器防火墙中使用的端口。 对于 UFW 防火墙,您可以使用以下命令打开端口:

sudo ufw allow 8000

如果您使用的是 DigitalOcean 防火墙,则可以从入站规则中选择 HTTP。 您可以阅读更多关于 DigitalOcean 防火墙以及如何通过修改 入站规则 为它们创建规则的信息。

第 3 步 — 启动项目

您现在可以使用 django-admin 生成应用程序,这是一个用于 Python 中管理任务的命令行实用程序。 然后您可以使用 startproject 命令为您的测试网站创建项目目录结构。

django-apps 目录中,运行以下命令:

django-admin startproject testsite

注意:运行django-admin startproject <projectname>命令会将工程目录和工程包命名为<projectname>,并在运行命令的目录下创建工程。 如果提供了可选的 <destination> 参数,Django 将使用提供的目标目录作为项目目录,并在其中创建 manage.py 和项目包。


现在您可以查看刚刚创建的项目文件。 导航到 testsite 目录,然后列出该目录的内容以查看创建了哪些文件:

cd testsite
ls
Outputmanage.py  testsite

您会注意到显示此目录的输出包含一个名为 manage.py 的文件和一个名为 testsite 的文件夹。 manage.py文件类似于django-admin,将项目的包放在sys.path上。 这也将 DJANGO_SETTINGS_MODULE 环境变量设置为指向您项目的 settings.py 文件。

您可以通过运行 less 命令在终端中查看 manage.py 脚本,如下所示:

less manage.py

阅读完脚本后,按 q,退出查看文件。

现在导航到 testsite 目录以查看创建的其他文件:

cd testsite/

然后运行以下命令列出目录的内容:

ls

您将看到四个文件:

Output__init__.py  asgi.py  settings.py  urls.py  wsgi.py

您可以查看每个文件的内容:

  • __init__.py 充当 Python 项目的入口点。
  • asgi.py 包含可选部署到异步服务器网关接口或 ASGI 的配置,它为同步和异步的应用程序提供标准,被认为是 WSGI 的继承者(见下文)。
  • settings.py 描述了 Django 安装的配置,并让 Django 知道哪些设置可用。
  • urls.py 包含一个 urlpatterns 列表,它将 URL 路由和映射到它们的 views
  • wsgi.py 包含 Web 服务器网关接口或 WSGI 的配置,它为同步 Python 应用程序提供标准。

注意: 虽然会生成默认文件,但您仍然可以随时调整 asgi.pywsgi.py 文件以满足您的部署需求。


第 4 步 — 配置 Django

现在您可以通过运行 runserver 命令在指定的主机和端口上启动服务器并查看网站。

您需要将您的服务器 IP 地址添加到位于 ~/test_django_app/testsite/testsite/settings.py 文件中的 ALLOWED_HOSTS 列表中。

Django 文档 中所述,ALLOWED_HOSTS 变量包含“表示此 Django 站点可以提供的主机/域名的字符串列表。 这是一种防止 HTTP Host 标头攻击的安全措施,即使在许多看似安全的 Web 服务器配置下也是可能的。”

您可以使用您喜欢的文本编辑器来添加您的 IP 地址。 例如,如果您使用 nano,请运行以下命令:

nano ~/django-apps/testsite/testsite/settings.py

运行命令后,您需要导航到文档的 ALLOWED_HOSTS 部分,并将服务器的 IP 地址添加到单引号或双引号内的方括号内。

设置.py

"""
Django settings for testsite project.

Generated by 'django-admin startproject' using Django 4.0.
...
"""
...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

# Edit the line below with your server IP address
ALLOWED_HOSTS = ['your-server-ip']
...

您可以保存更改并退出 nano,方法是按住 CTRL + x 键,然后按 y 键。 接下来,您将继续通过浏览器访问您的网络应用程序。

最后,创建一个管理用户,以便您可以使用 Django 管理界面。 这可以通过 createsuperuser 命令完成:

python manage.py createsuperuser

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

第 5 步 — 访问 Django Web 应用程序

完成配置后,请务必导航回 manage.py 所在的目录:

cd ~/django-apps/testsite/

现在,运行以下命令,将 your-server-ip 文本替换为您的服务器的 IP:

python manage.py runserver your-server-ip:8000

最后,您可以导航到以下链接以查看您的骨架网站的外观,再次将突出显示的文本替换为您的服务器的实际 IP:

http://your-server-ip:8000/

页面加载后,您将看到以下内容:

这确认 Django 已正确安装,并且您的测试项目工作正常。

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

http://your_server_ip:8000/admin/

这将带您进入登录屏幕:

如果您输入刚刚创建的管理员用户名和密码,您将可以访问该站点的主要管理部分:

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

完成应用程序测试后,可以按 CTRL + C 停止 runserver 命令。 这将使您返回到您的编程环境。

当你准备好离开你的 Python 环境时,你可以运行 deactivate 命令:

deactivate

停用您的编程环境将使您回到终端命令提示符。

结论

在本教程中,您已成功安装 Django 并设置了开发环境以开始使用您的 Django 应用程序。

您现在已具备开始构建 Django Web 应用程序所需的基础。