尝试从 Django 3.1 中的异步视图连接到由同一 asgi 服务器提供的同步视图时遇到问题。在普通的 wsgi 开发服务器中这样做是可行的,但在 asgi 服务器中却不行。这似乎有点奇怪。可能我误解了 asgi 的工作原理:)。这是有关如何重现此内容的链接:
这里只是导致问题的观点。也许有人可以通过查看这些内容来立即判断我做错了什么:
import httpx
from django.http import JsonResponse
def sync_api_view(request):
payload = {"foo": "bar"}
return JsonResponse(payload)
def sync_aggregation_view(request):
responses = []
r = httpx.get("http://127.0.0.1:8000/sync_api_view/")
responses.append(r.json())
result = {"responses": responses}
return JsonResponse(result)
“sync_aggregation_view”是在 wsgi 中工作但不能通过 asgi 工作的那个。