首页 > 编程语言 >python after_request详解

python after_request详解

时间:2022-08-27 23:45:54浏览次数:60  
标签:__ return python after request dict env todo

after_request是在每一个请求结束之后,再请求的一个钩子函数。
它需要有一个参数接收请求的响应。
这个示例是使用after_request,对每一个请求后的响应进行分类,
从而在请求完成之后,做不同的操作。

演示代码

import json
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/test1", methods=['POST'])
def t1():
    data = request.get_json(force=True)
    env = data.get('env')
    return {'code': 0000,'env': env}
@app.route("/test2")

def t2():
    env = request.args.get('env')
    return {'code': 0000,'env': env}

@app.after_request
def after(response):
    return_str = response.data.decode("utf-8")
    return_dict = json.loads(return_str)
    if return_dict['env'] == 't1':
        return_dict['todo'] = 'change nginx'
    elif return_dict['env'] == 't2':
        return_dict['todo'] = 'update mysql'
    else:
        return_dict['todo'] = 'send mq'
    return jsonify(return_dict)
if __name__ == "__main__":
    app.run()

  

演示结果
C:\Users\jh>curl -H "Content-type: application/json" -d "{\"env\":\"t1\"}" http://127.0.0.1:5000/test1
{"code":0,"env":"t1","todo":"change nginx"}

C:\Users\jh>curl http://127.0.0.1:5000/test2?env=t2
{"code":0,"env":"t2","todo":"update mysql"}

C:\Users\jh>curl http://127.0.0.1:5000/test2?env=t7
{"code":0,"env":"t7","todo":"send mq"}

标签:__,return,python,after,request,dict,env,todo
From: https://www.cnblogs.com/mtck/p/16631811.html

相关文章

  • python文件操作 r w a
    文件操作创建文件"asdf.txt"open()#打开file#文件的位置(路径)mode#操作文件的模式encoding#文件编码方......
  • Python_for_else
    循环“自然”终结(循环条件为假)时else从句会被执行一次,而当循环是由break语句中断时,else子句就不被执行。与for语句相似,while语句中的else子句的语意是一样的∶else块在......
  • python之数据类型转换
    一、隐式类型转换隐式类型转换-自动完成我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失num_int=123num_flo=1.2......
  • Python-——面向对象
    面向对象编程范式面向对象指的是一种编程范式;编程范式:可以理解为一种编程方式,编程规范,编程模式面向过程面向过程编程:是一种以过程为核心的编程,主要是在解决一个问题......
  • python中encode+decode编码解码
    encode()方法的语法格式:str.encode([encoding="utf-8"][,errors="strict"])decode()方法的语法格式:bytes.decode([encoding="utf-8"][,errors="strict"]) m="以心......
  • C# Webservice 上传文件保存 413 (Request Entity Too Large)
    文件太大,需要调整配置文件在webconfig下插入以下代码:<system.webServer><security><requestFiltering><requestLimitsmaxAllowedContentLength=......
  • python 报错 most likely due to a circular import 解决方法
    原因各个python文件,互相引用,造成的循环引用问题。解决方法:把需要引用的独立成一个文件,让其单向引用使用python写一个稍微大一点的工程时,经常会遇到循环import,即cicular......
  • 小记 【django git python】
    迁移此处生成的迁移文件包含了所有的表结构(已创建和未创建的表)pythonmanage.pymakemigrationsapp_namepythonmanage.pymigrate--fake-initial--fake-initial的......
  • Python中read()、readlines()、readline()
    一、介绍读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系......
  • After Effects 教程,如何在 After Effects 中使对象沿路径移动?
    欢迎观看AfterEffects教程,小编带大家学习AfterEffects的基本工具和使用技巧,了解如何在AE中使对象沿路径移动。将「当前时间指示器」移动到「时间轴」中「0;00;01;......