如何將 ReactJS 與 Flask API 連線?


構建既可擴充套件又引人入勝的現代 Web 應用程式需要使用相關的技術。ReactJS 和 Flask 是兩個流行的框架,分別常用於前端和後端開發。

在本文中,我們將探討將 ReactJS 與 Flask API 連線以建立強大的 Web 應用程式的過程,這些應用程式利用了兩種技術提供的獨特功能。我們將提供有關如何設定 Flask API、啟用跨源資源共享 (CORS)、從 ReactJS 發出 API 請求、在使用者介面中顯示 API 資料以及處理 API 錯誤的分步指南。在閱讀完本文後,您將全面瞭解如何將 ReactJS 與 Flask API 連線,從而能夠構建滿足您特定需求的可靠 Web 應用程式。

建立 Flask API

為了在 ReactJS 和 Flask API 之間建立連線,第一步是建立一個 Flask API。這可以透過建立一個 Python 指令碼完成,該指令碼概述了所需的 API 路由和方法。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 的路由,該路由返回一個包含訊息“Hello, World!”的 JSON 響應。

啟用 CORS

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 類,並將 app 物件傳遞給它以啟用所有 API 路由的 CORS。

從 ReactJS 發出 API 請求

成功建立 Flask API 並啟用 CORS 後,下一步是從您的 ReactJS 應用程式啟動 API 請求。JavaScript 的內建 fetch 函式可用於向您的 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 獲取響應後,我們將它的訊息分配給 message 變數,並使用 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 應用程式!

更新於: 2023年7月21日

3K+ 瀏覽量

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.