【问题标题】:How to Fetch JSON data from GET Request FLASK-Python如何从 GET 请求 FLASK-Python 中获取 JSON 数据
【发布时间】:2021-05-17 01:13:30
【问题描述】:

我在 react 应用程序上使用 get 请求来运行一个功能,该功能到目前为止只是在我的烧瓶 api 中“打印”出数据。我可以点击端点,并收到一个“响应”,但我不确定如何将 JSON 数据附加到 FLASK 给出的响应中。

PS:是否需要将此 JSON 数据发布到数据库,然后从我的 create react 应用程序中检索它?或者我可以做我想做的事情,即简单地运行 GET 请求,让它生成 JSON,然后在 GET 响应中将其发送回 Create React App。

Flask API (views.py)

@main.route('/add_post')
def add_post():
  

  temparray = []
  *code that pushes json object into temparray [{}, {}, {}]*
  
  time.sleep(5)       
  post_data = temparray
  print (post_data)

  ^^^^^^How do I attach post_data to the response?^^^^^^^^^
  

  return 'Done', 201

创建 React 应用 (app.js)

import { useEffect } from 'react';
import './App.css';

function App() {
  useEffect(() => {
    fetch("/add_post").then(response =>
      console.log(response)
      )
  }, [])
  return (
    <div className="App">
      <h1>
        test
      </h1>
    </div>
  );
}

【问题讨论】:

    标签: json reactjs flask get create-react-app


    【解决方案1】:

    在这里,

    fetch("/add_post").then(response =>
      console.log(response)
    )
    

    改为这样做

    fetch("/add_post")
      .then(response => response.json())
      .then(jsonData => {
        // do something with the data, e.g. setState
      })
    

    【讨论】:

      【解决方案2】:

      您可以在 add_post 函数中简单地使用 return post_data。这会自动将有效的 dict 转换为 JSON(即jsonify

      【讨论】:

      • 我认为这让我更进一步。我现在收到错误 Error Reading data SyntaxError: Unexpected token D in JSON at position 0. 我已经尝试了很多解决方案来解决这个问题,但到目前为止没有运气。
      • 听起来数据生成有问题,但可能是不同的问题/问题
      • 我能够解决这个问题。感谢您的帮助。