You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用Django实现实时时钟功能?

能否使用Django实现实时时钟功能?

当然可以实现,但得结合前端JavaScript来配合才行——毕竟Django作为后端框架,走的是请求-响应的模式:用户打开页面时,后端返回一次当前时间,之后就不会主动给前端发更新了,所以光靠Django本身没法做到“实时刷新”。

你现在写的代码其实是对的,但它只能在页面加载时显示那一刻的时间,之后就固定不动了。要实现实时更新的时钟,我们可以在前端用JS来每秒获取并更新时间,具体修改如下:

后端代码(可以保留原有的,或者甚至不用传时间,直接前端自己生成)

views.py 不用改动,还是原来的逻辑:

from datetime import datetime
from django.shortcuts import render

def clock(request):
    now = datetime.now()
    context = {
        'current_time': now.strftime('%Y-%m-%d %H:%M:%S')
    }
    return render(request, 'clock.html', context)

前端模板修改(加入JS实现实时更新)

修改 clock.html,添加一段JavaScript代码,让页面每秒自动更新时间:

{% extends "base.html" %}

{% block content %}
<h1>Current Time:</h1>
<p id="current-time">{{ current_time }}</p>

<script>
// 定义更新时钟的函数
function updateClock() {
    const now = new Date();
    // 把时间格式化成和后端一样的YYYY-MM-DD HH:MM:SS格式
    const formattedTime = now.toISOString().slice(0, 19).replace('T', ' ');
    // 更新页面上的时间显示
    document.getElementById('current-time').textContent = formattedTime;
}

// 页面加载完成后先执行一次,然后每隔1秒执行一次
updateClock();
setInterval(updateClock, 1000);
</script>
{% endblock %}

这样修改后,用户打开页面时会先显示后端返回的初始时间,之后前端会每秒自动获取当前时间并更新显示,实现实时时钟的效果。

如果你的场景必须要用服务器端的时间(比如客户端本地时间不准,需要统一用服务器时间),那可以用Django Channels来实现WebSocket:后端定时把服务器时间推送给前端,前端接收后更新显示。不过这种方式相对复杂,对于普通的实时时钟需求,前端自己处理就足够高效啦。

备注:内容来源于stack exchange,提问作者lilsnow02

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:28:03