如何在Ubuntu 22.04上安装Django并设置开发环境

介绍

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

在本教程中,您将在Ubuntu 22.04服务器上设置一个Django环境,用于开发目的。对于实时网站,您将有额外的考虑,包括连接到数据库、设置域名和添加安全层。有各种各样的Django教程可以在您构建下方的Django标签时提供支持。

先决条件

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

  • 一个具有sudo权限的非root用户帐户,您可以通过遵循并完成Ubuntu 22.04的初始服务器设置教程来实现。

  • 使用虚拟编程环境设置 Python 3。您可以通过 Python 3 安装指南 进行设置。

步骤 1 — 安装 Django

有几种方法可以安装 Django,其中一种是在虚拟环境中使用 Python 包管理器 pip。

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

  1. mkdir django-apps
  2. cd django-apps

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

  1. virtualenv env

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

  1. . env/bin/activate

一旦前缀更改为(env),您将知道它已激活,具体取决于您所在的目录:

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

  1. pip install django

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

  1. django-admin --version

结果输出将类似于以下内容:

Output
4.0.6

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

步骤2 — 调整防火墙设置

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

  1. sudo ufw allow 8000

如果您使用的是DigitalOcean防火墙,则可以从入站规则中选择HTTP。您可以通过修改入站规则来了解有关DigitalOcean防火墙以及如何为其创建规则的更多信息。

步骤 3 — 启动项目

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

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

  1. django-admin startproject testsite

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

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

  1. cd testsite
  1. ls
Output
manage.py testsite

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

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

  1. less manage.py

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

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

  1. cd testsite/

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

  1. ls

您将看到四个文件:

Output
__init__.py asgi.py settings.py urls.py wsgi.py

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

  • __init__.py作为您的Python项目的入口点。
  • asgi.py包含用于可选部署到Asynchronous Server Gateway Interface或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,请运行以下命令:

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

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

settings.py
"""
Django settings for testsite project.

Generated by 'django-admin startproject' using Django 4.0.
...
"""
...
# 安全警告:不要在生产环境中以调试模式运行!
DEBUG = True

# 编辑下面的行,填入您的服务器IP地址
ALLOWED_HOSTS = ['your-server-ip']
...

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

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

  1. python manage.py createsuperuser

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

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

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

  1. cd ~/django-apps/testsite/

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

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

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

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

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

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

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

http://your_server_ip:8000/admin/

这将带您到登录界面:

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

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

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

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

  1. deactivate

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

结论

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

你现在已经具备了构建Django Web应用程序所需的基础。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-django-and-set-up-a-development-environment-on-ubuntu-22-04