How do I display current time using Python + Django?


Question

I am learning how to use Python and Django to produce a small webapp that prints out the current time. I am using this with the Google App Engine.

Right now it's only displaying a blank page, but I want it to display the current time. I also want to map the function to the home page.. 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
19
2/24/2011 8:54:52 PM

Maybe this documentation is useful to you: Time Zones

Formatting time in a view

You can get the current time using:

import datetime
now = datetime.datetime.now()

or to get time depending on timezone:

import datetime
from django.utils.timezone import utc

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

to format the time you can do:

import datetime

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

Formatting time in a template

You can send a datetime to the template, let's supose you send a variable called myDate to the template from the view. You could do like this to format this 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

Check the Template filter date

I hope this is useful to you

37
8/21/2016 5:20:29 PM

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon