我正在寻找一个如何在django项目的页面上显示当前时间的简单示例。我尝试过搜索并提出以下内容(除非我刷新页面,否则不会更新):
这是我的urls.py:
from django.conf.urls import patterns, include, url
from garageMonitor.views import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url('time', time, name="time"),
)
这是我的views.py:
def time(request):
now = strftime("%H:%M:%S", gmtime())
time_dict = {"Time":now}
return render_to_response('time.html', {'time': time_dict})
以下是time.html:
<script type="text/javascript"
src="/static/garageMonitor/scripts/refreshTime.js">
window.onload = refreshTime;
</script>
<table id="test"><tbody>
<tr>
{% include "testing.html" %}
</tr>
</tbody></table>
这是tests.html:
{% for label, value in temperature.items %}
<td >{{ label }}</td>
<td>{{ value }}</td>
{% endfor %}
这是我的refreshTime.js:
function refresh() {
$.ajax({
url: '{% url monitor-test %}',
success: function(data) {
$('#test').html(data);
}
setInterval("refreshTime()", 1000);
});
}
$(function(){
refresh();
});
我很感激任何帮助。
我查看了控制台中的代码。它抱怨这条线:
$(function(){
(它不喜欢&#34; $&#34;)
答案 0 :(得分:1)
编辑:
你还需要jquery。在html中的其他脚本块之前添加<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
。
请参阅有关setTimeout和setInterval的文档:http://www.w3schools.com/jsref/met_win_settimeout.asp http://www.w3schools.com/jsref/met_win_setinterval.asp
将javascript更改为:
function refresh() {
$.ajax({
url: '{% url monitor-test %}',
success: function(data) {
$('#test').html(data);
}
});
}
$(function(){
setInterval(refresh, 1000);
});
或者这可能会更好:
function refresh() {
$.ajax({
url: '{% url monitor-test %}',
success: function(data) {
$('#test').html(data);
setTimeout(refresh, 1000);
}
});
}
$(function(){
refresh();
});
答案 1 :(得分:0)
我使用它,是django中的默认标记。
<ul class="sidebar-stats">
<li class="margin left right">
<h5>{% now "j F Y H:i" %}</h5>
</li>
</ul>
答案 2 :(得分:0)
user1132959当场亮相!我需要补充一下:
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
我在更新页面的每个周期的次数方面遇到了一些问题。我想这可能是因为缓存,但我不确定。 以下是我现在的工作情况。
<强> refreshTime.js:强>
function refreshTime() {
$.ajax({
url: '{% url time %}',
success: function (data) {
console.log("success function called");
$('#test').html(data);
}
});
}
$( document ).ready(function () {
console.log("setting interval");
setTimeout(refreshTime,1000);
});
<强>为time.html:强>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" src="/static/garageMonitor/scripts/refreshTime.js"></script>
<table id="test">
<tbody>
<tr>
{% include "testing.html" %}
</tr>
</tbody>
</table>
<强> urls.py:强>
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url('time', time, name="time"),
)
<强> views.py:强>
def time(request):
now = strftime("%H:%M:%S", gmtime())
time_dict = {"Time":now}
return render_to_response('time.html', {'time': time_dict})
我真的希望这能帮助其他人比我更快地完成他们的彩虹。
感谢所有帮助过我的人!答案 3 :(得分:0)
您不需要Django,只需HTML和JavaScript。
在您的time.html文件中,使用以下命令显示当前时间(每秒更新):
<span id="time">
<script>
function GetTime(){
var dt = new Date();
document.getElementByID("datetime").innerHTML = dt.toLocaleTimeString();
}
setInterval(GetTime,1000);
</script>