分离前后端react和django3构建的应用

简介: 【6月更文挑战第4天】在本文中,我们介绍了如何设置React前端并连接到Django后端。并讨论了前后端分离的好处,并计划扩展API以支持更多HTTP操作和用户身份验证功能。

简介

本文介绍通过nvm安装Node.js,然后使用create-react-app创建React项目。

question_ans.png

在前端,我们展示了如何构造模拟数据,并将其加载到组件状态。

遇到问题时,可尝试重新安装npm。然后引入axios进行HTTP请求,以从Django API替换模拟数据。

1 工具安装

首先,将React应用配置为我们的前端。

新建一个控制台界面,linux 下载并安装 node

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

或者

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

激活命令行

command -v nvm\

重启命令行控制台界面,即可完成安装.

2 使用React创建项目

我们将使用出色的npm-create-react-app包来快速启动一个新的React项目。这将生成我们的项目样板并通过一个命令安装所需的依赖项!

npm使管理和安装多个软件包变得非常简单。 这是在本地安装软件包的一种改进方法,无需安装污染全局名称空间。这是安装React的推荐方法以及我们将使用的方法

在todo目录创建前端app

apt install npm   # 40M 上下
npx create-react-app frontend  

进入frontend 并启动应用

$ cd frontend
$ npm start

3 在前端app构造模拟数据

代码如下:

    import React, { Component } from 'react';
    const list = [ {
        "id":1,
        "title":"1st todo",
        "body":"Learn Django properly."
        },
        {
        "id":2,
        "title":"Second item",
        "body":"Learn Python."
        },
            {
        "id":3,
        "title":"Learn HTTP",
        "body":"It's important."
       } ]

将列表加载到组件的状态,然后使用JavaScript数组方法map()显示所有项目.可以复制代码,只需要看到如何与api配合工作。

    class App extends Component {
        constructor(props) {
            super(props);
            this.state = { list };
    }

    render() {
        return (
                <div>
                {this.state.list.map(item => (
                 <div key={item.id}>
                        <h1>{item.title}</h1>
                        <p>{item.body}</p>
                        </div>
            ))}
                </div>
         );
        } }
    export default App;

我们已将列表加载到App组件的状态中,然后使用map遍历每个组件列表中的项目,显示每个项目的标题和正文。

我们还添加了ID作为密钥,这是一个反应特定的要求;该ID由Django自动添加到我们每个数据库字段中。

注意:如果在前端看见js错误,只需要重新安装npm,该修复程序通常是npm-install,然后尝试重新启动npm。

如果这样不起作用,则删除您的node_modules文件夹并运行npm install。这样就可以在99%的时间内解决问题。欢迎使用现代JavaScript。 :)

4 连接前后端

使用 django api 替换 mock 数据。

发出HTTP请求的两种流行方法:内置FetchAPI或axios它带有几个附加功能。

在此示例中,我们将使用axios。使用Control-c停止运行的应用程序。然后安装axios。

在前端安装 axios, 用于前端发起request 请求。

npm install axios

如果axios 安装失败,使用 内置的fetch

//src/App.js
import React, { Component } from 'react';
//import axios from 'axios'; // new
class App extends Component {
    state = {
        todos: []
    };
// new
componentDidMount() {
this.getTodos();
}
// new
getTodos() {
fetch('http://127.0.0.1:2000/api/')
.then(response )
.then(data => this.setState({ totalReactPackages: data.total }));
//.catch(err => {
//console.log(err);
//})
//);
}
render() {
    return ( <div> {this.state.todos.map(item => (
    <div key={item.id}> <h1>{item.title}</h1> <span>{item.body}</span> </div>
    ))}
    </div>
    );
} }
export default App;

5 小结

前后端分离将增强web站点的灵活性。

接下来增强我们的API,使其支持多个HTTP动作,例如POST(添加新待办事项),PUT(更新现有的待办事项)和DELETE(删除待办事项)

然后我们将构建一个健壮的博客 API,该API支持完整的CRUD(创建-读取-更新-删除)功能,
随后再向其中添加用户身份验证,以便用户可以登录,注销,然后通过我们的API注册帐户。

目录
相关文章
|
4月前
|
前端开发
深入解析React Hooks:构建高效且可维护的前端应用
本文将带你走进React Hooks的世界,探索这一革新特性如何改变我们构建React组件的方式。通过分析Hooks的核心概念、使用方法和最佳实践,文章旨在帮助你充分利用Hooks来提高开发效率,编写更简洁、更可维护的前端代码。我们将通过实际代码示例,深入了解useState、useEffect等常用Hooks的内部工作原理,并探讨如何自定义Hooks以复用逻辑。
|
3月前
|
监控 JavaScript 前端开发
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
62 1
|
3月前
|
前端开发 JavaScript 开发者
使用React和Redux构建高效的前端应用
使用React和Redux构建高效的前端应用
71 1
|
3月前
|
前端开发 JavaScript 开发者
从零开始构建你的第一个React应用
从零开始构建你的第一个React应用
47 2
|
4月前
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
302 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
3月前
|
资源调度 前端开发 数据可视化
构建高效的数据可视化仪表板:D3.js与React的融合之道
【10月更文挑战第25天】在数据驱动的时代,将复杂的数据集转换为直观、互动式的可视化表示已成为一项至关重要的技能。本文深入探讨了如何结合D3.js的强大可视化功能和React框架的响应式特性来构建高效、动态的数据可视化仪表板。文章首先介绍了D3.js和React的基础知识,然后通过一个实际的项目案例,详细阐述了如何将两者结合使用,并提供了实用的代码示例。无论你是数据科学家、前端开发者还是可视化爱好者,这篇文章都将为你提供宝贵的洞见和实用技能。
104 5
|
3月前
|
监控 前端开发 JavaScript
确保 React 应用在出现错误时仍然能够保持响应式
【10月更文挑战第25天】可以有效地确保React应用在出现错误时仍然能够保持响应式,为用户提供更加稳定、可靠的使用体验。在实际应用中,需要根据项目的具体情况和需求,综合运用这些方法,并不断优化和完善错误处理机制,以适应不断变化的业务场景和用户需求
|
4月前
|
前端开发 JavaScript 测试技术
React 高阶组件 (HOC) 应用
【10月更文挑战第16天】高阶组件(HOC)是 React 中一种复用组件逻辑的方式,通过接受一个组件并返回新组件来实现。本文介绍了 HOC 的基础概念、核心功能和常见问题,包括静态方法丢失、ref 丢失、多个 HOC 组合和 props 冲突的解决方案,并提供了具体的 React 代码示例。通过本文,读者可以更好地理解和应用 HOC,提高代码的复用性和可维护性。
136 8
|
3月前
|
前端开发 JavaScript Android开发
掌握React Native,构建跨平台移动应用的利器
掌握React Native,构建跨平台移动应用的利器
|
3月前
|
前端开发 JavaScript API
React Native实战:构建跨平台移动应用
React Native实战:构建跨平台移动应用
65 0