为了账号安全,请及时绑定邮箱和手机立即绑定

我可以在任务当前执行时渲染视图吗?

我可以在任务当前执行时渲染视图吗?

墨色风雨 2023-03-08 14:25:40
假设我在 views.py 中有这个视图:def wait_and_print(request):             print(5)         time.sleep(90)         return render(request, 'view.html')我想在 time.sleep(90) 任务完成之前显示 view.html(让它在后台执行,因为我的视图不需要它)。我读过有关同步-异步任务的信息,但我似乎不太了解如何执行此操作。谢谢,
查看完整描述

1 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

您可以通过在指向呈现空 HTTP 响应的 URL 下添加 AJAX 函数来完成此操作view.html:URL /run_ajax(应包含在您的 中urls.py)应如下所示:


```re_path(r'^run_ajax', views.function_to_call_with_ajax)```

function_to_call_with_ajax 是这样的(在 view.py 中):


def wait_and_print(request):      

  print(5)  

  time.sleep(90)  

  return HttpResponse("")

AJAX 功能:


<script type="text/javascript">

$( document ).ready(function() {

    console.log("ready!");

    $.ajax({

        url: '/run_ajax', //The URL you defined in urls.py

        success: function (data) {

            console.log('data ', data)


            //If you wish you can do additional data manipulation here.

        },

        error: function (error) {

            console.log('error', error)

        }


    });


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 80 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信