上一章節咱們實現的helloworld視圖是用來演示Django網頁是建立的,它不是一個動態網頁,每次運行/helloworld/,咱們都將看到相同的內容,它相似一個靜態HTML文件。html
接下來咱們將實現另外一個視圖,加入動態內容,例如當前日期和時間顯示在網頁上。經過簡單的下一步,來演示Django的這個技術。python
這個視圖作兩件事情: 獲取服務器當前日期和時間,並返回包含這些值的HttpResponse 。爲了讓Django視圖顯示當前日期和時間,在代碼中引入datetime模塊,而後要把語句:datetime.datetime.now()放入視圖函數,而後返回一個HttpResponse對象便可。代碼以下:django
from django.http import HttpResponse import datetime def helloworld(request): return HttpResponse("Hello world") def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)
函數的第二行代碼用 Python 的格式化字符串(format-string)功能構造了一段 HTML 響應。 字符串中的%s是佔位符,字符串後面的百分號表示用它後面的變量now的值來代替%s。變量%s是一個datetime.datetime對象。它雖然不是一個字符串,可是%s(格式化字符串)會把它轉換成字符串,如:2014-11-03 14:15:43.465000。這將致使HTML的輸出字符串爲:It is now 2014-11-03 14:15:43.465000。瀏覽器
完成添加views.py上述代碼以後,同上,在urls.py中添加URL模式,以告訴Django由哪個URL來處理這個視圖。 以下:咱們定義/mytime/URL:服務器
from django.conf.urls import patterns, include, url from mysite.views import hello,current_datetime # Uncomment the next two lines to enable the admin: # from django.contrib import admin # admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^mysite/', include('mysite.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: # url(r'^admin/', include(admin.site.urls)), ('^helloworld/$', hello), ('^mytime/$', current_datetime), )
寫好視圖而且更新URLconf以後,運行命令python manage.py runserver運行服務器,在瀏覽器中輸入http://127.0.0.1:8000, 咱們將看到增長的mytime頁面目錄。函數
在瀏覽器中輸入http://127.0.0.1:8000/mytime/。 網頁將顯示當前的日期和時間。編碼
本小節經過一個簡單例子展現了動態頁面的例子,目前爲止HTML源碼被直接硬編碼在 Python 代碼之中,下一章節咱們將介紹Django模板系統,如何解決Python代碼與頁面設計分離的問題。url