Как отображать текущее время с помощью Python + Django?

Я изучаю, как использовать Python и Django для создания небольшого webapp, который выводит текущее время. Я использую это с Google App Engine.

Сейчас он отображает только пустую страницу, но я хочу, чтобы она отображала текущее время. Я также хочу отобразить функцию на домашней странице. Not/time/.

from django.http import HttpResponse
from django.conf.urls.defaults import *
import datetime

# returns current time in html
def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

def main(): 
    # maps url to current_datetime func
    urlpatterns = patterns('',
        (r'^time/$', current_datetime),
    )

if __name__ == '__main__':
  main()

Ответ 1

Возможно, эта документация вам полезна: Часовой пояс

Время форматирования в представлении

Вы можете получить текущее время, используя:

import datetime
now = datetime.datetime.now()

или для получения времени в зависимости от часового пояса:

import datetime
from django.utils.timezone import utc

now = datetime.datetime.utcnow().replace(tzinfo=utc)

, чтобы отформатировать время, которое вы можете сделать:

import datetime

now = datetime.datetime.now().strftime('%H:%M:%S')  #  Time like '23:12:05'

Время форматирования в шаблоне

Вы можете отправить дату-время в шаблон, допустив, что вы отправляете переменную с именем myDate в шаблон из представления. Вы можете сделать это так, чтобы форматировать это datetime:

{{ myDate | date:"D d M Y"}}  # Format Wed 09 Jan 2008
{{ myDate | date:"SHORT_DATE_FORMAT"}}  # Format 09/01/2008
{{ myDate | date:"d/m/Y"}}  # Format 09/01/2008

Проверьте Фильтр шаблонов date

Надеюсь, это вам полезно.

Ответ 2

Использовать тег теперь. Например:

{% now "jS F Y H:i" %}

но вам нужно отправить свою строку через механизм шаблонов, прежде чем отправлять ответ для его работы.

Ответ 3

Для кода Django, а не в шаблоне, поддержка на самом деле довольно проста.

В настройках изменить часовой пояс:

TIME_ZONE = 'Asia/Kolkata'

И где вам нужно использовать, используйте следующий код:

from django.utils import timezone
now = timezone.now()

Источник: https://docs.djangoproject.com/en/2.1/topics/i18n/timezones/

Ответ 4

Вы можете использовать time.strftime() для печати текущего времени. В urlpatterns просто измените '^time/$' на '^/$', чтобы сопоставить корневую страницу с вашей временной функцией.

Ответ 5

Я использовал это в view.py

currentTime = datetime.datetime.now(). , , И для HomePage (2 фрагмента)

enter image description here

enter image description here