介绍
Django 是一个以 Python 编写的免费和开源的 Web 框架,其核心原则是可扩展性、可重复使用性和快速开发,它也以其框架层面的一致性和宽松的结合而闻名,允许单个组件相互独立。
在本教程中,我们将在Ubuntu 20.04服务器上设置一个Django环境 用于开发目的 .对于实时网站,您将有额外的考虑,包括连接到数据库,设置域名,并添加安全层。
前提条件
为了完成本教程,您将需要:
- 具有
sudo
特权的非根用户帐户,您可以通过遵循和完成Ubuntu 20.04(https://andsky.com/tech/tutorials/initial-server-setup-with-ubuntu-20-04)的初始服务器设置教程来实现。
第1步:安装Django
有几种方法可以在虚拟环境中安装Django,Python包管理 pip。
在服务器的主目录中,我们将创建包含我们的Django应用程序的目录,运行以下命令创建名为django-apps
的目录,或您选择的其他名称,然后导航到目录。
1mkdir django-apps
2cd django-apps
在django-apps
目录中,创建你的虚拟环境,我们将它称为通用env
,但你应该使用一个对你和你的项目有意义的名称。
1virtualenv env
现在,用以下命令激活虚拟环境:
1. env/bin/activate
您将知道它一旦更改前缀为(env)
,它将看起来像以下,取决于您所在的目录:
在环境中,使用 pip 安装 Django 包,我们可以创建和运行 Django 应用程序。
1pip install django
一旦安装,请通过运行版本检查来验证您的 Django 安装:
1django-admin --version
这个或类似的东西将是结果:
1[secondary_label Output]
23.0.6
有了 Django 安装在您的服务器上,我们可以继续创建一个测试项目,以确保一切正常工作。
第2步:调整防火墙设置
如果您遵循我们的初始服务器设置教程或在您的服务器上运行防火墙,我们需要打开我们将在我们的服务器防火墙中使用的端口。
1sudo ufw allow 8000
如果您正在使用 DigitalOcean 防火墙,您可以从输入规则中选择HTTP
,您可以通过修改 输入规则来了解更多关于 DigitalOcean 防火墙和为其创建规则的信息。
步骤三:开始项目
我们现在可以使用django-admin
来生成一个应用程序,这是一个用于Python中的管理任务的命令行工具,然后我们可以使用startproject
命令为我们的测试网站创建项目目录结构。
在「django-apps」目录中,运行以下命令:
1django-admin startproject testsite
<$>[note]
注: 运行django-admin startproject <projectname>
命令将项目目录和项目包命名为<projectname>
,并在执行命令的目录中创建项目。
现在我们可以看看刚刚创建了哪些项目文件。导航到测试站点
目录,然后列出该目录的内容,以查看创建了哪些文件:
1cd testsite
1ls
1[secondary_label Output]
2manage.py testsite
你会注意到输出显示这个目录包含一个名为manage.py
的文件和一个名为testsite
的文件夹。manage.py
文件类似于django-admin
,并将项目的包放置在sys.path
。
您可以通过运行少
命令来查看终端中的manage.py
脚本:
1less manage.py
当你完成阅读脚本时,按q
,停止查看文件。
现在导航到测试站点
目录,查看已创建的其他文件:
1cd testsite/
然后运行以下命令列出目录的内容:
1ls
你会看到四个文件:
1[secondary_label Output]
2__init__.py asgi.py settings.py urls.py wsgi.py
让我们来看看这些文件中的每一个是什么:
__init__.py
作为您的 Python 项目的入口点。asgi.py
包含可选部署到非同步服务器网关接口或 ASGI的配置,为同步和非同步的应用提供标准,并被认为是 WSGI 的继任者(见下文)。settings.py
描述了您的 Django 安装的配置,让 Django 知道哪些设置可用。
<$>[注]
注: 虽然生成了默认文件,但您仍然可以随时调整asgi.py
或wsgi.py
文件以满足您的部署需求。
步骤 4 – 配置 Django
现在我们可以启动服务器并在指定主机和端口上查看网站,运行runserver
命令。
我们需要将您的服务器 ip 地址添加到位于 ~/test_django_app/testsite/testsite/
的 settings.py
文件中的 ALLOWED_HOSTS
列表中。
正如 Django docs中所述的,ALLOWED_HOSTS
变量包含一个代表这个Django网站可以服务的主机/域名的字符串列表,这是防止HTTP主机头攻击的安全措施,即使在许多看似安全的Web服务器配置中也是可能的
。
您可以使用您喜爱的文本编辑器添加您的 IP 地址,例如,如果您正在使用nano
,请执行以下命令:
1nano ~/django-apps/testsite/testsite/settings.py
一旦运行该命令,您将要导航到文档的允许主机部分,并在单个或双重引用中添加服务器的IP地址。
1[label settings.py]
2"""
3Django settings for testsite project.
4
5Generated by 'django-admin startproject' using Django 2.0.
6...
7"""
8...
9# SECURITY WARNING: don't run with debug turned on in production!
10DEBUG = True
11
12# Edit the line below with your server IP address
13ALLOWED_HOSTS = ['your-server-ip']
14...
您可以保存更改和退出纳米通过扣留CTRL
+x
键,然后按y
键。
最后,让我们创建一个管理用户,这样你就可以使用 Djano admin interface。
1python manage.py createsuperuser
您将被要求为您的用户提供用户名、电子邮件地址和密码。
步骤 5 – 访问 Django Web App
当我们的配置完成后,请确保您返回位于manage.py
的目录:
1cd ~/django-apps/testsite/
现在,运行以下命令,将您的服务器-ip 文本替换为您的服务器的 IP:
1python manage.py runserver your-server-ip:8000
最后,您可以浏览下面的链接,看看您的骨骼网站是什么样子,再次用您的服务器的实际IP代替突出的文本:
1http://your-server-ip:8000/
一旦页面加载,你会看到以下内容:
这证实 Django 已正确安装,我们的测试项目正在正常运行。
要访问 admin 界面,请在 URL 末尾添加 /admin/
:
1http://your_server_ip:8000/admin/
这将带你到一个登录屏幕:
如果您输入您刚刚创建的管理员用户名和密码,您将可以访问网站的主要管理部分:
有关使用 Django 管理界面的更多信息,请参阅 [如何启用和连接 Django 管理界面
。
当您完成测试应用程序时,您可以按CTRL
+C
来停止runserver
命令。
当你准备离开你的Python环境时,你可以运行禁用
命令:
1deactivate
停用您的编程环境将使您回到终端命令提示。
结论
在本教程中,您已经成功安装了Django,并设置了一个开发环境,开始在Django应用程序上工作。
现在你已经有了建立 Django Web 应用程序所需的基础。