当前位置:首页 > 编程技术 > 正文内容

如何将ReactJS与Flask API连接起来?

yc88810个月前 (07-21)编程技术204

如何将ReactJS与Flask API连接起来?

构建既可扩展又引人入胜的现代 Web 应用程序需要使用相关技术。ReactJS和Flask是两个流行的框架,分别用于前端和后端开发。

在本文中,我们将探讨将 ReactJS 与 Flask API 连接起来的过程,以创建利用这两种技术提供的独特功能的强大 Web 应用程序。我们将为您提供有关如何设置 Flask API、启用跨源资源共享 (CORS)、从 ReactJS 发出 API 请求、在用户界面中显示 API 数据以及处理 API 错误的分步指南。在本文结束时,您将全面了解如何将 ReactJS 与 Flask API 连接起来,使您能够构建满足您特定需求的可靠 Web 应用程序。

创建烧瓶 API

为了在ReactJS和Flask API之间建立连接,第一步是创建一个Flask API。这可以通过创建一个概述所需 API 路由和方法的 Python 脚本来完成。Flask 通过提供一个名为“@app.route”的预构建装饰器来简化 API 开发过程。借助此功能,开发人员可以快速高效地创建路由和方法,使 Flask 成为构建 API 的理想解决方案。

下面是返回简单 JSON 响应的 Flask API 示例:

from flask import Flask, jsonify app = Flask(__name__) @app.route('/api') def api():     response = {'message': 'Hello, World!'}     return jsonify(response)

在此示例中,我们创建了一个 Flask API,其中包含一个名为 /api 的单个路由,该路由返回一个 JSON 响应,其中包含消息“Hello, World!

启用可替代通信量

CORS 是由 Web 浏览器实现的一项安全功能,可防止网页向托管在不同域上的 API 发出请求。当您从一个域上托管的 ReactJS 应用程序向托管在另一个域上的 Flask API 发出请求时,Web 浏览器将默认阻止该请求,这意味着您将无法访问 Flask API 返回的数据。

通常,Web 浏览器会阻止对来自另一个域的 API 的请求。要允许 ReactJS 向 Flask API 发出请求,您必须在 Flask 服务器上启用跨源资源共享 (CORS)。幸运的是,您可以通过安装 flask-cors 包并利用 CORS 类为您的 API 路由启用 CORS 轻松完成此操作。

下面是如何为所有 API 路由启用 CORS 的示例:

from flask_cors import CORS CORS(app)

在此示例中,我们从 flask−cors 包中导入了 CORS 类,并将应用程序对象传递给它,以便为所有 API 路由启用 CORS。

从 ReactJS 发出 API 请求

成功创建 Flask API 并启用 CORS 后,下一步是从 ReactJS 应用程序发起 API 请求。JavaScript 的内置获取函数可用于向 API 发送 HTTP 请求。

下面是如何向 Flask API 的 /api 路由发出 GET 请求的示例:

fetch('/api')   .then(response => response.json())   .then(data =>  console.log(data))

在下图中,我们利用 fetch 函数向 Flask API 的 /api 路由发起 GET 请求。随后,我们使用 json 方法将响应转换为 JSON 格式,并将结果数据记录到控制台以进行调试和测试。

在 ReactJS 中显示 API 数据

从 ReactJS 应用程序成功发出 API 请求后,下一步是在用户界面中显示数据。使用ReactJS,这可以使用强大的useState和useEffect钩子来实现,这些钩子可以轻松呈现动态内容。

下面是如何在 React 组件中显示来自 Flask API 的 /api 路由的消息的示例:

import { useState, useEffect } from 'react'; function App() {   const [message, setMessage] = useState('');   useEffect(() => {     fetch('/api')       .then(response => response.json())       .then(data => setMessage(data.message));   }, []);   return (     <div>       <h1>{message}</h1>     </div>   ); } export default App;

上面的演示展示了 useState 钩子的实现,用于创建名为“message”的状态变量,以及 useEffect 钩子在组件挂载时启动 API 请求。从 API 获取响应后,我们将其消息分配给消息变量,并使用 JSX 将其显示在用户界面中。

处理 API 错误

发出 API 请求时,处理可能发生的错误非常重要。如果发生错误,您可以向用户显示错误消息或采取其他适当的操作。

下面是在 ReactJS 中发出 API 请求时如何处理错误的示例:

import { useState, useEffect } from 'react'; function App() {   const [message, setMessage] = useState('');   const [error, setError] = useState('');   useEffect(() => {     fetch('/api')       .then(response => {         if (!response.ok) {           throw new Error('Network response was not ok');         }         return response.json();       })       .then(data => setMessage(data.message))       .catch(error => setError(error.message));   }, []);   return (     <div>       {error && <p>{error}</p>}       <h1>{message}</h1>     </div>   ); } export default App;

在图示的示例中,我们合并了一个名为“error”的状态变量,并使用“catch”方法来管理API请求期间可能发生的任何错误。每当出现错误时,我们都会将错误消息分配给“error”变量,并将其显示在组件的用户界面中。

结论

总而言之,将 ReactJS 与 Flask API 连接是一种开发具有现代前端和灵活后端的 Web 应用程序的通用方法。本文重点介绍了创建 Flask API、启用 CORS、从 ReactJS 发出 API 请求、在用户界面中呈现 API 数据以及处理 API 错误所需的基本步骤。有了这些知识,您可以创建满足您特定需求并提供卓越用户体验的 Web 应用程序。无论您是在构建基本的 Web 应用程序还是复杂的企业级应用程序,ReactJS 和 Flask API 都提供了强大的组合,可以帮助您实现目标。因此,立即开始探索各种可能性,并发现您可以使用ReactJS和Flask API构建的创新Web应用程序!


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10637.html

标签: api
分享给朋友:

“如何将ReactJS与Flask API连接起来?” 的相关文章

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

【说站】C#在PDF中添加墨迹注释Ink Annotation的步骤详解

PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线。下面,通过C#程序代码介绍如何...

【说站】linux中redis如何以redis用户重启?

【说站】linux中redis如何以redis用户重启?

通过上图我们可以看到,目前状态是已经以 redis 用户启动着,我想修改下 redis 的密码,然后怎么以 redis 用户重启呢?redis 是 nologin 用户,不能通过 su redis 切...

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难。最近疫情稍微好转一些了,所以咱们获取一下最新的疫情数据,做个可视化地图看看。效果展示获取到的数据咱们保存到表格可视化地图颜色是...

【说站】jenkins配置ssh服务器并配置ssh servers

【说站】jenkins配置ssh服务器并配置ssh servers

1.系统管理-》配置-》Publish over SSH当然,没有这个插件的第一时间去插件管理里面去下载2.生成秘钥任意找一台服务器,生成即可。2.1已有秘钥无须在生成,只需要吧公钥配置到将要配置的s...