文档章节

#SORA#flask-RESTful的一些坑

Hochikong
 Hochikong
发布于 2015/03/21 23:04
字数 318
阅读 1985
收藏 2
点赞 0
评论 0

上个星期看文档,基本熟悉flask和curl的用法,于是写个程序:

__author__ = 'hochikong'
from flask import Flask,request
from flask.ext.restful import Resource,Api,reqparse

app = Flask(__name__)
api = Api(app)

todos = {}

parser = reqparse.RequestParser()
parser.add_argument('name',type=str,help='get the name')


class TodoSimple(Resource):
    def get(self,todo_id):
        return {todo_id:todos[todo_id]}

    def put(self,todo_id):
        todos[todo_id] = request.form['data']
        return {todo_id:todos[todo_id]},201

class GetName(Resource):
    def post(self):
        args = parser.parse_args()
        name = {}
        name['ac'] = args['name']
        return name
        
        #args = parser.parse_args()
        #name = args['name']
        #return name

api.add_resource(TodoSimple,'/<string:todo_id>')
api.add_resource(GetName,'/getname')

if __name__ == '__main__':
    app.run()


注意代码中注释的部分,在使用reqparse时,如果按照注释部分写,会显示如下问题:

hochikong@hochikong-P41T-D3:~$ curl http://localhost:5000/getname -d "name=hochikong" -X POST -v
* Hostname was NOT found in DNS cache
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 5000 (#0)
> POST /getname HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:5000
> Accept: */*
> Content-Length: 14
> Content-Type: application/x-www-form-urlencoded
> 
* upload completely sent off: 14 out of 14 bytes
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Content-Type: application/json
< Content-Length: 11
< Server: Werkzeug/0.10.1 Python/2.7.6
< Date: Sat, 21 Mar 2015 15:00:18 GMT
< 
* Closing connection 0

虽然是200,但是没有任何数据返回


我想,args['name']输出的的确是一个字符串,但是flask-RESTful的响应应该是:

Content-Type: application/json

而没有把单个字符串弄成json格式的途径

但一旦放入python字典中,return的结果就是一个合法的json输出.

我猜的哇 :)

© 著作权归作者所有

共有 人打赏支持
Hochikong
粉丝 18
博文 113
码字总数 59961
作品 1
广州
程序员
后端技术精选

HTTPS 原理剖析与项目场景 最近手头有两个项目,XX 导航和 XX 产业平台,都需要使用 HTTPS 协议,因此,这次对 HTTPS 协议做一次整理与分享。 使用缓存应该注意哪些问题? 如何使用缓存,怎么...

掘金官方
01/02
0
0
SpringBoot技术栈搭建个人博客【后台开发】

前言:在之前,我们已经完成了项目的基本准备,那么就可以开始后台开发了,突然又想到一个问题,就是准备的时候只是设计了前台的RESTful APIs,但是后台管理我们同样也是需要API的,那么就在...

我没有三颗心脏
06/21
0
0
.net core项目实战汇总

背景 项目需求其实很简单,类似于一个简单的审批+简单的任务管理系统,但需要同时有PC端和APP端。 由于项目规模不大,时间也比较宽裕,组内商量下来干脆全采用新技术来踩踩坑。这么一提,大家...

04/26
0
0
我们必须要知道的RESTful服务最佳实践

看过很多RESTful相关的文章总结,参齐不齐,结合工作中的使用,非常有必要归纳一下关于RESTful架构方式了,RESTful只是一种架构方式的约束,给出一种约定的标准,完全严格遵守RESTful标准并不...

操张林
06/07
0
0
kylin初体验-入门介绍

kylin初体验 12月开始,为了提高公司OLAP系统的查询速度,开始接触kylin,前前后后折腾了近三个月。踩了无数的坑,才算是初窥门径。特在此把自己的感悟、理解记录下来,算是重新梳理一边自己...

Eric_Guan
2016/05/03
684
1
HttpPutFormContentFilter为什么不支持HTTP.DELETE啊...

HttpPutFormContentFilter 今天在学习RestFul接口的时候发现从Postman发出来的PUT和DELETE请求参数没办法被SpringMvc获取到,百度了一下发现了HttpPutFormContentFilter,使用之后PUT可以了但...

Sgmder
2017/01/13
339
2
.net core项目实战之回顾总结

图片来自网络 最近公司的一个小项目尝试使用 .net core作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的。这里记录下整体开发过程,用于备忘和分享 背景 项目需求其实...

Bug生活2048
03/14
0
0
03、Swagger2和Springmvc整合详细记录(爬坑记录)

开始之前这个系列博文基本是,在项目的使用中一些模块的内容记录,但是后期逐渐优化,不单单是整合内容。 swagger简介 1、swagger主要提供了三个功能: Swagger Editor: Swagger提供的一个编辑...

weir_will
06/18
0
0
在Spring MVC 中,使用MultipartFilter 后 POST 获取不到 上传的文件

首先,我一定要来吐槽一下,这问题太坑了我上网查了好久好久,国内国外,stackOverFlow等等都查过了,都没什么进展,坑了我好久才发现原因的。难道都没人遇到过吗?我已经不想去追究为什么貌...

uncle_zhang
2015/11/19
0
3
Java工具及框架汇总

如今软件的复杂度已经超过了程序员们理解的极限,我们在每日的编程中不需要从轮子造起,众多成熟稳定的框架可以帮我们简化开发,避免踩坑。 此文记录了我平时工作中常用的一些框架,及其简短...

rathan0
2016/01/15
141
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

代码生成利器:IDEA 强大的 Live Templates

代码生成利器:IDEA 强大的 Live Templates

qwfys
18分钟前
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
22分钟前
0
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
25分钟前
0
0
日常运维--rsync同步工具

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

chencheng-linux
29分钟前
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
41分钟前
1
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
0
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
0
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
0
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
0
0
rsync工具介绍/rsync通过ssh同步

rsync工具介绍 数据备份是必不可少,在Linux系统下数据备份的工具很多,其中重点介绍就是rsync工具,rsync不仅可以远程同步数据,还可以本地同步数据,且不会覆盖以前的数据在已经存在的数据...

Hi_Yolks
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部