gpt4 book ai didi

django - 模拟异步处理请求

转载 作者:行者123 更新时间:2023-12-01 23:13:31 25 4
gpt4 key购买 nike

我想实现一些现有 DRF API 方法(特别是列表方法)的异步版本,这可能需要很长时间。我的想法是捕获经过身份验证的用户 ID、他想要执行的方法以及查询字符串;然后将任务排队以运行该方法。对于任务处理程序来说,最简单的事情似乎是为实际 API 方法创建一个模拟请求,然后将结果存储在某处以供轮询处理程序读取。

我的问题是:如何有效地创建一个模拟 Django 请求(包括用户和查询字符串),然后将其用于直接创建 View 集或将请求分派(dispatch)到适当的 url 路径?从 API 的角度来看,Django 测试客户端实际上似乎很适合我的意图,但我不确定它是否适合在生产中使用?

谢谢。

最佳答案

我明白了。以下是摘录:

from django.http import request, QueryDict

view_kwargs = view.kwargs
query_params = request.QUERY_PARAMS

req = request.HttpRequest()
req.user = user
req.method = 'GET'
req.GET = QueryDict(None).copy()
req.GET.update(query_params)

resp = viewset_class.as_view({'get': 'list'})(req, **view_kwargs).render()

关于django - 模拟异步处理请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074141/

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