使用 axios 从 flask-restless API 获取数据

Posted

技术标签:

【中文标题】使用 axios 从 flask-restless API 获取数据【英文标题】:Using axios to GET data from flask-restless API 【发布时间】:2019-02-18 18:31:16 【问题描述】:

我正在尝试使用 axios 从无烧瓶 API 获取数据。以下 Python 请求没有问题:

import requests
import json

url = 'http://127.0.0.1:5001/api/cds'
headers = 'Content-Type': 'application/json'

filters = [dict(name='formal_name', op='like', val='my_val')]
params = dict(q=json.dumps(dict(filters=filters)))

response = requests.get(url, params=params, headers=headers)

并生成此 URI

/api/cds?q=%7B%22filters%22%3A+%5B%7B%22name%22%3A+%22formal_name%22%2C+%22op%22%3A+%22like%22%2C+%22val%22%3A+%22my_val%22%7D%5D%7D

与 axios 的类似请求:

axios.get('http://127.0.0.1:5001/api/cds', 
      params: 
        q:
            JSON.stringify(
              filters: [
                name: "formal_name",
                op: "like",
                val: formalName
              ]
            )
      ,
    
)
    .then(res => 
      console.log(res)
    );

请求不同的 URI:

/api/cds?q=%7B%22filters%22:[%7B%22name%22:%22formal_name%22,%22op%22:%22like%22,%22val%22:%22my_val%22%7D]%7D 

最终没有返回任何结果。我想知道我是否遗漏了关于我在 axios 中使用的语法的某些内容,或者 axios 生成不同的 URI 是否有一些根本原因(然后无法通过 flask-restless 正确解析)

【问题讨论】:

【参考方案1】:

此代码按上述方式工作,但有一个不相关的错误。

【讨论】:

以上是关于使用 axios 从 flask-restless API 获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Flask-Restless 从 Flask-Sqlalchemy 转储十进制值

flask-restless 使用分页或获得完整响应

使用 flask-restless 对 POST 的错误请求与关系

使用flask-restless实现超媒体

如何使用 Flask-Restless 启用 CORS

使用 flask-restless 创建 API 响应