Falcon学习笔记2——修改响应状态
admin
2023-06-29 06:23:25
0次

本节尝试从client发送json到服务器,然后服务器根据内容响应

1.测试客户端发送与接收输出
import json,falcon

class ObjRequestClass:
    def on_get(self,req,resp):
        resp.status = falcon.HTTP_200
        data = json.loads(req.stream.read())
        content = {
            'name':'falcon',
            'age':30
        }
        resp.body=json.dumps(data)

api = falcon.API()
api.add_route('/test',ObjRequestClass())

req.stream.read() #读取客户端请求内容

发送测试请求,我用httpie,喜欢用postman的在Body,raw中添加即可。

http get localhost:8080/test name="hello"

注意发送时用双引号,不要用单引号。单引号会报错。

一切正常能看到如下输出:

HTTP/1.1 200 OK
Content-Length: 17
Content-Type: application/json
Date: Fri, 08 Nov 2019 03:39:59 GMT
Server: waitress

{
    "name": "hello"
}
2.尝试根据发送内容获取不同结果
{
"method":"get-name"
}
import json,falcon

class ObjRequestClass:
    def on_get(self,req,resp):
        resp.status = falcon.HTTP_200
        data = json.loads(req.stream.read())
        content = {
            'name':'falcon',
            'age':30
        }
        value={}
        if data["method"]=="get-name":
            value['value']=content['name']
        else:
            value['value']=None
        resp.body=json.dumps(value)

api = falcon.API()
api.add_route('/test',ObjRequestClass())

httpie测试

http get localhost:8080/test falcon_test:api method="get-name"  #结果正常
http get localhost:8080/test falcon_test:api method="get-names" #结果为null
3.添加不同http状态
import json,falcon

class ObjRequestClass:
    def on_get(self,req,resp):
        resp.status = falcon.HTTP_200
        data = json.loads(req.stream.read())
        content = {
            'name': 'falcon',
            'age': 30
        }
        value = {}
        if "method" not in data: #检测内容是否包含请求信息
            resp.status == falcon.HTTP_501 
        else:
            if data["method"] == "get-name":
                value['value'] = content['name']
            elif data["method"] == "get-age":
                value['age'] = content['age']
            else:
                resp.status = falcon.HTTP_404
                value['value'] = None

        resp.body = json.dumps(value)

api = falcon.API()
api.add_route('/test',ObjRequestClass())

req.stream 可用

['__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__
enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__nex
t__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWritable', 'close', 'c
losed', 'detach', 'fileno', 'flush', 'getbuffer', 'getvalue', 'isatty', 'read', 'read1', 'readable', 'readinto', 'readinto1', 'readline', 'readlines', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'wr
ite', 'writelines']

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...