Python開發入門與實戰3-Django動態頁面

3.Django動態頁面

上一章節咱們實現的helloworld視圖是用來演示Django網頁是建立的,它不是一個動態網頁,每次運行/helloworld/,咱們都將看到相同的內容,它相似一個靜態HTML文件。html

接下來咱們將實現另外一個視圖,加入動態內容,例如當前日期和時間顯示在網頁上。經過簡單的下一步,來演示Django的這個技術。python

3.1.一個簡單的動態頁面例子

這個視圖作兩件事情: 獲取服務器當前日期和時間,並返回包含這些值的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/。 網頁將顯示當前的日期和時間。編碼

 

3.2. 小結

本小節經過一個簡單例子展現了動態頁面的例子,目前爲止HTML源碼被直接硬編碼在 Python 代碼之中,下一章節咱們將介紹Django模板系統,如何解決Python代碼與頁面設計分離的問題。url

相關文章
相關標籤/搜索