问题标签 [flask-restful]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2113 浏览

python - Flask-Restful:如何发送非 json POST 参数?

我在使简单(非 json)参数与 POST 一起工作时遇到问题。仅以他们教程中的简单示例为例,我无法在任务作为参数传递的情况下进行单元测试。但是任务永远不会传入。它没有。

单元测试:

请问我错过了什么?

0 投票
9 回答
56876 浏览

python - Angular 的 Flask RESTful 跨域问题:PUT、OPTIONS 方法

我使用 Flask Restful 开发了一个小型的只写 REST api,它接受来自少数可能具有更改 IP 地址的客户端的 PUT 请求。我的客户是运行 AngularJS 前端的嵌入式 Chromium 客户端;他们使用一个简单的魔法密钥对我的 API 进行身份验证——这对于我非常有限的规模来说已经足够了。

我现在正在测试部署我的 API,我注意到 Angular 客户端正在尝试向我的 Flask 服务发送一个 OPTIONS http 方法。与此同时,我的 API 正在回复 404(因为我还没有编写 OPTIONS 处理程序,只有一个 PUT 处理程序)。似乎在发送不是 POST 或 GET 的跨域请求时,Angular 会在服务器发送一个 pre-flight OPTIONS 方法,以确保在发送实际请求之前跨域请求被接受。那正确吗?

无论如何,我如何允许所有跨域 PUT 请求到 Flask Restful API?我之前使用过带有(非 RESTful)Flask 实例的跨域装饰器,但是我是否需要在我的 API 中也编写一个 OPTIONS 处理程序?

0 投票
3 回答
4102 浏览

python - 烧瓶休息的 CORS 上的 TypeError

在 flask-restful 上尝试新的 CORS 功能时,我发现只有在函数返回字符串时才能应用装饰器。

例如,修改快速入门示例

抛出:

TypeError: 'dict' object is not callable

难道我做错了什么?

0 投票
3 回答
14888 浏览

python - 调用flask restful API 资源方法

我正在使用 Flask 创建一个用于移动平台的 API,但我也希望应用程序本身消化 API 以呈现 Web 内容。我想知道在 Flask 中访问 API 资源方法的最佳方法是什么?例如,如果我将以下类添加为资源:

然后在我想要的控制器中:

如何从 FooAPI 获取 post() 的返回值?我可以通过 api 变量以某种方式做到这一点吗?还是我必须在控制器中创建一个 FooAPI 实例?似乎必须有一种简单的方法来做到这一点,我只是不明白......

0 投票
3 回答
17906 浏览

python - Flask-RESTful - 返回自定义响应格式

我根据 Flask-RESTful 文档定义了一个自定义响应格式,如下所示。

我有以下资源类。

我希望get()函数返回application/octet-stream类型和put()函数返回默认值application/json

我该怎么做呢?文档在这一点上不是很清楚。

0 投票
1 回答
651 浏览

python - Flask 或 Werkzeug/0.9.4 破坏 POST 数据

我发现了一些我认为是由 Werkzeug/0.9.4 引起的 Flask-restful 行为,我不明白。当我尝试发布包含“=”的有效 JSON 时,Multidict 的使用似乎破坏了我的数据。

这是我的测试 JSON:

这是 POST 方法。

如果我使用带有 application/json 的 cURL 发布,那很好。我在 request.data 中正确获取了 POSTed JSON。稍后我需要将其渲染回 JSON,但没问题。

如果我通过 cURL 使用 application/x-www-form-urlencoded 发布,那么我应该能够获取 request.form 中的数据。但是,似乎有些东西正在破坏我的数据。

“=”符号被用作某种记录分隔符并破坏 POSTed JSON。

有没有人有任何想法?我错过了一些明显的东西吗?

谢谢!

0 投票
1 回答
3517 浏览

flask-restful - 如何在 flask-restful 中指定参数是可选的

我有这样的代码:

这仍然要求我提供rating参数,400 Bad Request如果不存在则抛出。

我错过了什么?

0 投票
2 回答
47119 浏览

python - Flask-RESTful API:多个复杂的端点

在我的 Flask-RESTful API 中,假设我有两个对象,用户和城市。这是一对多的关系。现在,当我创建我的 API 并向其添加资源时,我所能做的似乎就是将非常简单和通用的 URL 映射到它们。这是代码(不包括无用的东西):

如您所见,我可以做任何我想做的事情来实现一个非常基本的功能。我可以 GET、POST、PUT 和 DELETE 两个对象。但是,我的目标有两个:

(1) 能够使用城市名称等其他参数进行请求,而不仅仅是城市 ID。它看起来像:
api.add_resource(CityAPI, '/api/city/<string:name>', endpoint='city')
除了它不会给我这个错误:

AssertionError:视图函数映射正在覆盖现有端点函数

(2) 能够将两个资源组合在一个请求中。假设我想让所有用户与某个城市相关联。在 REST URL 中,它应该类似于:
/api/cities/<int:id>/users

我如何用 Flask 做到这一点?我将它映射到哪个端点?

基本上,我正在寻找将我的 API 从基本变为有用的方法。

0 投票
1 回答
283 浏览

python - 在 Google App Engine 上运行简单的 flask_restful 应用程序时出现 RuntimeError

我有以下非常简单的应用程序:

当我运行它时,我得到以下异常:

所以我试图把我的整个应用程序放到我认为的请求上下文中。在上面的代码中,Flask 对象和 Api 对象都被实例化了一次,并且可以被服务器多次调用。从回溯中,看起来实例化应该发生在请求上下文中,所以我将它包装成这样:

这仍然会引发同样的错误。发生了什么事,“请求上下文”是什么意思,我该如何解决这个问题?

0 投票
1 回答
4511 浏览

python - 如何在python中向flask-restful添加参数?

如何创建执行以下操作的 api 调用:

目前尚不清楚我如何从内部处理它:

另外,我注意到我只能将 add_resource 添加到一个级别: