Я никак не смогу сделать смарт часы на Django. Выводит время - легко, а вот чтобы часы обнавлялись не получается. Помогите! Без JS
import time
# Create your views here.
def index(request):
clock = time.strftime('%H:%M:%S %p')
context = {'clock':clock}
return ....
В общем виде я категорически не рекомендую это делать без JS.
В production среде не место подобным решениям ибо они создают лишнюю нагрузку, увеличивают траффик и мешают пользователю.
В любой команде за такое оторвут руки.
Обновление страницы с помощью HTML тега
Но если это часть какого-то хитроумного теста или челенджа
(а-ля вывода hello world
без использования функции main и пр.)
то в том(и только в том случае) можно попробовать обновлять страницу используя HTML-тег <meta>
<meta http-equiv="refresh" content="seconds;URL">
В атрибуте content
через точку с запятой вы указываете количество секунд, через которое должно выполниться перенаправление и URL - куда Вас следует перенаправить.
Обычно он используется для перенаправления страниц, у которых изменился адрес(другими словами для редиректов), но если указать в нем интервал в секунду и ссылку на самого себя, то он будет обновлять страницу каждую секунду, что может быть решением Вашей задачи.
Вам стоит поместить данный тег в <head></head>
указав количество секунд и адрес страницы
<meta http-equiv="refresh" content="1;http://localhost:3000/smart_watch/">
На всякий случай
На случай, если мои убеждения дошли до цели оставлю здесь это:
Обновление страницы на JavaScript
<script>
setTimeout(function(){
window.location.reload();
},1000);
</script>
Часы обновляемые целиком и полностью на клиентской части.
let watch = document.getElementById('watch');
watch.innerText = (new Date()).toLocaleTimeString();
setInterval(function() {
watch.innerText = (new Date()).toLocaleTimeString();
},1000);
#watch{
width: 100px;
text-align: center;
background-color:#333333;
color:#00FF00;
padding: 10px 20px;
font-size: 18px;
font-family: monospace;
}
<div id='watch'></div>
Еще раз повторюсь:
В общем виде такие задачи без JS решать нецелесообразно(а в большинстве невозможно), поэтому некоторые пользователи совершенно оправданно сочли данную задачу нонсенсом и вздором и начали ставить минусы и голосовать за закрытие данного вопроса.
Если Вы хотите заниматься веб-разработкой и быть fullstack-разработчиком, но при этом совсем не хотите работать с JavaScript, то Вам стоит пересмотреть, а тем ли Вы занимаетесь.
А если Вы хотите быть исключительно backend-разработчиком, то не стоит смотреть и пытаться выполнять задачи, которые требуют интерактивности на стороне клиента.
Альтернативы JavaScript
Если вообще прям JavaScript не любите, то можете попробовать писать клиентский код на:
- Dart
- Kotlin
- Elm
- CoffeeScript
- TypeScript
- ClojureScript
- пр.
С последующей компиляцией всего этого добра в JavaScript.
То есть писать Вы будете на другом языке, но браузер все равно в итоге будет выполнять JS.
На данный момент JavaScript это единственный язык поддерживаемый всеми современными популярными браузерами.