当前位置: 首页 > 知识库问答 >
问题:

python - django异步如何改写这段代码?

蔚丰
2023-07-31

使用djanog的异步如何改写下边这段代码:

class CategorysTagView(CommonView):    """    根据一级分类名称获取所有二级分类    """    def get(self, request, title):        # 根据名称获取一级分类        category = models.TopCategory.objects.prefetch_related('topcategory').get(title_en=title)        # 获取所有二级分类        dicts = {'category': category}        context = self.web_context(dicts)        return render(request, 'category.html', context)

共有1个答案

申炳
2023-07-31
from django.http import HttpResponsefrom asgiref.sync import sync_to_asyncfrom . import modelsclass CategorysTagView(CommonView):    """    根据一级分类名称获取所有二级分类    """    async def get(self, request, title):                category = await sync_to_async(models.TopCategory.objects.prefetch_related('topcategory').get)(title_en=title)            dicts = {'category': category}        context = await sync_to_async(self.web_context)(dicts)        return HttpResponse(await sync_to_async(render)(request, 'category.html', context))
 类似资料:
  • 你好,我是java的新手,我对如何编写JUnit测试感到困惑,有人能帮忙吗? 任务说明: 当您将自动取款机(ATM)与银行卡一起使用时,您需要使用个人识别码(PIN)来访问您的帐户。如果用户在输入PIN码时失败三次以上,机器将阻止该卡。 假设用户的PIN是“1234”,编写一个程序,向用户索要PIN不超过三次,并执行以下操作: 如果用户输入了正确的号码,请打印一条消息,说明“您的PIN是正确的”,

  • 控制器方法被调用后,发了一条消息到MQ,MQ消费后写入redis处理结果。 现在想要在控制器方法被调用后返回处理结果,目前的做法是死循环轮询判断redis有无结果,感觉好傻,有没有其他优雅的方案。

  • 问题内容: 在代码底部运行的示例需要很长时间才能在我的机器上解决: 这是代码: 每只只供三只骆驼。我想至少这样做4次。该测试用例仍在运行(现在:()已经大约5分钟了。如果完成,我将对其进行更新。 我应该怎么做才能改善这段代码?(通常以性能为依据,但也欢迎其他建议)。 问题答案: 我以前也被这个绊倒了。这里的瓶颈实际上是。 该in语句是如此易于使用,你忘记了它是线性搜索,而当你在列表上进行线性搜索时

  • 您好,我是java新手,我对如何编写JUnit测试感到困惑,有人能帮我吗? 任务说明: 当您将自动取款机(ATM)与银行卡一起使用时,您需要使用个人识别码(PIN)来访问您的帐户。如果用户在输入PIN码时失败三次以上,机器将阻止该卡。 假设用户的PIN为“1234”,编写一个程序,要求用户输入PIN不超过三次,并执行以下操作: 如果用户输入了正确的号码,请打印一条消息,说明“您的PIN是正确的”,

  • 如何改进这些代码?我试着在API29的应用程序上使用它,但每次我在构建后打开应用程序时,我的应用程序就崩溃了。我在Stackoverflow中找到了这些代码,但由于SharedPefrences等一些功能被弃用而不再工作,我尝试使用新的SharedPeference管理器,但应用程序仍然崩溃。 然后我有,它应该指导用户选择一个布局为XML的选项。 这是使用无线电组的ChoiceActivity的X