gpt4 book ai didi

python - 在 Flask API 中查看函数之前修改请求数据

转载 作者:行者123 更新时间:2023-12-04 12:17:15 25 4
gpt4 key购买 nike

在 Flask 中是否允许在 View 函数之前修改请求 json 数据(例如在装饰器中)?甚至有可能吗?想象这样的事情:

from functools import wraps
from flask import request, current_app

def my_function_decorator(func):
@wraps(func)
def decorated_function(*args, **kwargs):
req = request.get_json()
# do something to calculate the new value
req["new key"] = "new value"
request.set_json(req)

return func(*args, **kwargs)

return decorated_function

目的是根据发送到我的服务的地址数据,对来自第三方服务的经纬度数据进行地理编码。不确定装饰器是否是正确的选择,或者它是 before_request 还是其他东西,或者什么都没有。

最佳答案

我知道这是一个非常古老的问题,但有些人从谷歌来到这里(像我一样)。答案是:

from functools import wraps
from flask import Flask

from werkzeug.datastructures import ImmutableMultiDict

def my_function_decorator(func):
@wraps(func)
def decorated_function(*args, **kwargs):
http_args = request.args.to_dict()
http_args ['Shered Data'] = 'Hi!'

request.args = ImmutableMultiDict(http_args )

return func(*args, **kwargs)

return decorated_function

server = Flask(__name__)

@server.route('/')
@my_function_decorator
def index():
#Now, request.args contains your data
return 'It works! Shared data: %s' % (request.args.get('Shered Data'))

server.run(debug=True)

关于python - 在 Flask API 中查看函数之前修改请求数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57045378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com