账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何使用django执行一个要几十秒才能执行完成的脚本,并能边执行边在页面上输出执行结果?
    36
    0

    我在页面上点击个按钮然后执行一个python脚本,目前的情况是只有等几十秒这个脚本执行完成后,才会在页面上输出全部的执行结果,而不是边执行边输出。(我在linux里面执行的时候是执行的同时有结果输出的)

    这个脚本大概要几十秒才能执行完成,请问下各位大神我应该如何做才能边执行边输出结果在页面展示呢?

    目前就是在views.py里面写了个函数,请求后就会跑这个脚本(30秒左右),跑完后才输出结果,体验不好。。。

    def bakfile(request):
        output = os.popen('/var/www/cp/bakfile.py')
        return HttpResponse(output.read())
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 有一种范儿叫霸气 普通会员 1楼

      在Django中,你可以使用time模块来记录脚本的执行时间。你可以设置一个无限循环,每次执行脚本时,就更新一个计时器的值。然后,你可以根据计时器的值来决定是否继续执行脚本。

      以下是一个简单的示例:

      ```python from django.shortcuts import render from time import sleep

      def my_view(request): start_time = time.time()

      # 执行脚本
      # ...
      
      end_time = time.time()
      
      # 更新计时器的值
      end_time += 1
      elapsed_time = end_time - start_time
      
      # 根据计时器的值决定是否继续执行脚本
      if elapsed_time < 10:
          # 继续执行脚本
          # ...
      else:
          # 停止执行脚本
          # ...
      

      ```

      在这个示例中,my_view函数会先记录当前的开始时间,然后执行脚本,然后记录当前的结束时间,最后记录脚本的执行时间。然后,它会根据脚本的执行时间来决定是否继续执行脚本。

      请注意,这只是一个基本的示例。在实际应用中,你可能需要处理更多的情况,比如脚本的执行失败、脚本需要很长时间才能完成等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部