Django刷新数据库,直到交易结束

时间:2018-08-17 05:37:44

标签: python django python-3.x django-models

我有一个漫长的任务,那就是将许多记录添加到数据库表中。 在表中,有一个名为“ end”的字段。在完成任务之前,该字段将为空。任务完成后,我将在“结束”字段中写入一个值。

我是否可以创建一个HTML页面,该页面每5秒刷新一次表格中的项目,直到字段“ end”具有值?

有人为此提供示例脚本吗?

2 个答案:

答案 0 :(得分:0)

这是一个非常具体的问题,我认为没有现成的例子。

但是您可以在HTML模板中简单地使用JavaScript:

{% if end_column_empty %}

 <script>    
   setTimeout(function(){
     window.location.reload(1);
   }, 5000);
 <script>

{% else %}
 Table is Complete.
{% endif %}

以上代码假定您使用Celery或某种异步方式执行了较长的SQL任务。如果您的SQL作业需要50秒才能完成,则上面的代码将无效,因为它会在5秒后分解。

如果您不想使用Celery,则可以按原样执行SQL-Job,同时使用jQuery更新表-为此,您将需要REST API槽来访问表数据。

答案 1 :(得分:0)

您可以尝试使用websocket。套接字正在监听并等待数据。 Django使用表单 django-channels