代码之家  ›  专栏  ›  技术社区  ›  Mayday

如何在pre_hooks中修改python eve请求

  •  0
  • Mayday  · 技术社区  · 6 年前

    我需要确保每当用户对资源发出GET请求时,它总是包含一个名为“_mes”的特定字段。当用户指定投影时,这会成为一个问题,所以我总是试图添加它

    app.on_pre_GET_my_resource = pre_get_my_resource_callback
    ...
    ...
    ...
    def pre_get_my_resource_callback(request, lookup):
        """Always add _mes to projection"""
        projection = json.loads(request.args['projection']) if 'projection' in request.args else None
        projected_field = True if projection is None or ('_mes' in projection and projection['_mes'] == 1) else False
        if not projected_field:
            projection['_mes'] = 1
            request.args['projection'] = json.dumps(projection)
            print(projection)
    

    问题是请求是不可变的,因此它失败了

    我不想自己重复完全相同的查询并复制它,必须在…之后合并两者。。。我想夏娃一定有办法做到这一点,但怎么做呢?

    0 回复  |  直到 6 年前