使用Django REST框架将Django与Reactjs整合起来
在这篇文章中,我们将学习使用Django REST框架在Django后端和React js前端之间进行通信的过程。为了更好地理解这个概念,我们将建立一个简单的任务管理器,并通过React js和Django之间这种类型的集成的主要概念。
Reactjs简而言之是一个用于开发单页应用程序(SPA)的Javascript库,具有非常详细和结构良好的文档。在这个项目中,React将作为前端,通过对Django后台的请求来处理用户界面(UI)。
项目概述
让我们先看看我们将建立什么。下面的图片显示了任务管理器的用户界面。
这个任务管理器应用程序是一种待办事项清单。这里我们有三个按钮,分别是 “已完成”、”未完成 “和一个名为 “添加任务 “的按钮来添加任务,如上图所示。
为了添加一个任务,你点击添加任务按钮,这将在应用程序中打开一个窗口来添加任务,如下图所示。在这里,我们可以为任务添加 “标题”,并在 “描述 “部分给它一个描述。最后,你可以根据任务的状态(即,已完成或未完成)进行检查或取消检查,如下图所示。
在你 “保存 “任务后,你可以在 “已完成 “和 “未完成 “选项卡之间浏览,以跟踪任务,如下所示。
在这里,你也可以选择 “删除 “或 “编辑 “现有任务,如下图所示。
以上执行的所有操作都由Django REST框架管理。
创建项目:
先决条件:
因此,以下是项目的先决条件。
为了验证你是否安装了Python 3,在你的命令提示符中使用以下命令(由于这个项目是在Windows机器上开发的,我们将使用命令提示符,但根据你的操作系统,你可以使用终端)。
这将显示出你系统上当前的Python版本,如下图所示。
要检查Node模块是否已经安装,请使用下面的命令。
这将显示你的系统上的节点版本,如下图所示。
在这一点上,我们就可以开始了,因为我们的系统中已经安装了Python和Node js。
实现:
让我们从后端开始。
后端(Django):
现在让我们打开我们的命令提示符。现在按照下面的步骤,以同样的顺序来跟读本文。
第1步:使用以下命令创建一个名为_“Django-react-app “的目录(该命令可能会根据你的操作系统而略有变化)。
第2步:移动到我们刚刚创建的目录中,使用下面的命令。
第3步:现在使用下面的命令创建一个虚拟环境。
我们将我们的虚拟环境命名为_”dar” _,是Django和react的缩写。这是必要的,因为我们不需要在全局范围内安装软件包和依赖关系。这也是一种良好的编程实践。
第4步:用下面的命令激活我们刚刚创建的虚拟环境。
这将激活我们的虚拟机,如下图所示。
步骤5:现在使用以下命令在虚拟机内安装Django。
当你的安装完成后,你会得到一个类似的消息。
第6步:现在让我们为我们的Django后端创建名为”_backend “的项目。要做到这一点,请使用下面的命令。
Django-react应用程序将是我们的主文件夹,在它里面,我们将有两个文件夹,一个用于后台,一个用于我们稍后创建的前台。
第7步:现在使用以下命令导航到后台文件夹。
第8步:现在我们将启动我们的应用程序,并使用下面的命令调用它 “todo”。
使用上述命令可以创建应用程序,如下图所示。
现在让我们继续启动VS代码并打开里面的项目文件夹。在这个阶段,我们的项目结构将看起来像下面这样。
第9步:现在使用下面的命令来迁移该项目。
迁移将被应用,如下图所示。
第10步:现在让我们使用下面的命令运行服务器。
现在你可以访问本地主机,检查项目是否已经正常启动。正如你在下面的图片中看到的,项目已经启动并运行。
第11步:现在我们需要在_settings.py _文件中采取一些配置步骤。在INSTALLED_APPS部分添加我们创建的应用程序的名称(即,todo),如下图所示。
在这一点上,settings.py文件将看起来像下面这样。
第12步:接下来,我们将需要创建一个模型。模型将决定如何将待办事项__项目存储在数据库中。我们在模型中会有三个属性。
- 标题。这将是任务的标题,最大长度为150个字符。
- 描述。这将是任务的描述,最大长度为500个字符。
- 已完成。这将是一个布尔值,它将被用来确定任务的当前状态。默认情况下,它将被设置为false。
因此,继续打开models.py文件和以下代码。
我们还将在Todo类里面创建一个字符串表示的标题,如下所示。
在这一点上,我们的models.py文件将看起来像这样。
第13步:现在让我们继续做迁移。注意,每次你对models.py文件进行修改,我们都需要进行迁移。使用下面的命令来做。
当你的迁移准备就绪时,将产生以下信息。
第14步:现在让我们使用下面的命令应用所有的迁移。
这将应用我们的迁移,如下图所示。
现在我们可以测试一下CRUD操作是否在使用Admin站点(或者,界面)的todo模型文件上工作。为此,我们将需要在admin.py文件中注册这些模型。
第15步:打开_admin.py _文件,在其中添加以下代码。
第16步:现在让我们使用以下命令创建一个超级用户。
在这里,我们将使用以下凭证。
- Username: Geeks
- 电子邮件地址:geeks@geeksforgeeks.org
- Password:12345
注意:你可以根据你的需要设置你的凭证。上述凭证不需要相同。
当超级用户被创建时,我们会得到以下信息。
第17步:现在让我们运行服务器,用下面的命令检查到目前为止一切都在按计划进行。
导航到以下链接。
这将显示我们的管理页面,如下图所示。
在这里填写你的凭证并登录。我们将使用创建超级用户时使用的凭证。
这将引导我们进入以下页面。在这里,我们可以看到我们的用户、应用程序和组,如下图所示。
Users:
Todo:
让我们给它添加一些任务并保存,如下所示。
我们可以看到这项任务列在todo部分,如下图所示。
创建API
为了创建API,我们将需要安装Django REST Framework for Serializers。我们还需要Django-cors-headers来白名单3000端口,这是React的默认端口。
现在按照以下步骤来创建Django REST框架。
第1步:安装Django REST框架,在后台目录中使用以下命令。
安装完成后,将显示以下信息。
步骤2:现在使用以下命令安装D _jango-cors-headers _。
安装完成后,将显示以下信息。
第3步:现在打开_setting.py _文件,将我们刚刚安装的两个依赖项添加到INSTALLED_APPS中,如下图所示。
第4步:在settings.py文件中,我们还需要把localhost的3000端口列入白名单。如果我们不这样做,在localhost:8000和localhost:3000之间会有一个块。添加下面的代码来实现同样的目的。
第5步:在MIDDLEWARE部分,我们需要添加cors-headers设置,如下图所示。
在这一点上,我们的_settings.py _将看起来像下面这样。
现在我们需要为Todo数据模型创建序列化器。序列器负责将模型实例转换为JSON。这将有助于前端轻松处理收到的数据。JSON是网络上数据交换的标准。
第6步:现在在todo文件夹内创建一个文件,命名为_serializers.py. _在该文件夹内添加以下代码。
第7步:现在是创建视图的时候了。所以打开_views.py _文件。现在在该文件中添加以下代码。
第8步:现在打开urls.py文件,在其中添加以下代码。
这是创建REST API的最后一步,我们现在可以执行所有的CRUD操作。路由器允许我们进行查询。例如,如果我们去 “tasks”,这将返回所有任务的列表。此外,你可以有一个单一的 “task”,其中有一个_id _来返回一个单一的任务,其中id是主键。
现在让我们检查一下我们是否在正确的方向上前进。因此,运行服务器并导航到以下网址。
如果一切顺利,我们将得到以下结果。
正如你所看到的,我们的API已经启动并运行。
现在,如果我们导航到以下链接,就可以查看并与我们的任务互动。
前端(React js):
现在让我们为我们的Todo应用程序建立前端。为此,请按照以下步骤进行。
第1步:导航到主项目目录(即Django-react-app),使用以下命令激活虚拟环境。
第2步:现在使用下面的命令来创建React js应用程序的模板。
这里,npx代表Node Package Executable。在模板设置完成后,你会得到以下信息。
我们还需要一些UI设计方面的天赋,特别是reactstrap和bootstrap。
第3步:所以,使用下面的命令在项目中安装reactstrap和bootstrap。
第四步:首先进入Frontend文件夹,使用下面的命令运行React服务器,以确保到此为止一切正常。
如果一切正常,你会在localhost:3000上得到以下页面
第5步:现在打开前端文件夹中的App.js文件。并清除模板代码,将其改为以下代码。
在这一点上,前台看起来会像下面这样。
正如你在上面的图片中所看到的。对App.js文件所做的任何修改都会直接反映到用户界面上。
第6步:现在将代码放到App.js文件。为了更好地理解,在代码中加入了注释。
第7步:现在打开Index.css文件,清除里面的CSS,在文件中添加以下CSS。
第8步:现在在_src _目录下创建一个名为“Components “的新文件夹,并在其中添加一个文件Modal.js。然后在其中添加以下代码。
第10步:对_index.js _文件做如下修改。
API 连接:
为了让我们能够向Django后台服务器上的API端点发出请求,我们需要安装Axios。在frontend文件夹中使用以下命令来安装Axios。
输出:
祝贺你!!。在这一点上,你已经成功地建立了一个Fullstack Django-React应用程序,并使用Django REST框架来建立前端和后端的通信。