django之模拟异步处理请求
zengkefu
阅读:63
2025-06-02 22:19:02
评论:0
我想实现一些现有 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()
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



