天天看點

Django學習筆記(第二節)Hello World站點視圖和URL配置

視圖和URL配置

建立視圖

在上一節建立的mysite檔案夾中建立一個叫做 view.py的空檔案,這就是視圖檔案。Django對這個檔案的名稱沒有特殊要求,但一般約定為view.py。

輸入以下内容:

from django.http import HttpResponse

def hello(request):

    return HttpResponse("Hello world")

這三行代碼的意思分别是:

導入django.http的HttpResponse類,建立一個名為hello、參數為request的函數。傳回一個HttpResponse對象,它包含了文本"Hello world"。

建立URLconf

打開項目自動建立的urls.py檔案,預設内容的如下圖:

Django學習筆記(第二節)Hello World站點視圖和URL配置

URLconf中加入URL和View的映射就可以。 在這裡添加VIew中的hello功能。

from django.conf.urls.defaults import *

from mysite.views import hello

urlpatterns = patterns('',

    url(r'^admin/', include(admin.site.urls)),

    url(r'^hello/$','mysite.views.hello', name='hello'),#進入hello頁面

)

Django1.7版本的寫法貌似與1.4版本的不太一樣。

寫完這兩個檔案的内容就可以,運作mysite項目。

通路路徑http://127.0.0.1:8000/hello/

将顯示Hello World!

關于正規表達式的内容,python對正則實作與其他語言基本一緻,一些python正則特性可以到網上搜尋一下,比較簡單。

Django通路路徑的過程總結:

1.進來的請求轉入/hello/;

2.Django通過在ROOT_URLCONF配置來決定根URLconf;

3.Django在URLconf中的所有URL模式中,查找第一個比對/hello/的條目;

4.如果找到比對,将調用相應的視圖函數;

5.視圖函數傳回一個HttpResponse

6.Django轉換HttpResponse為一個适合的HTTP response, 以Web page顯示出來。

動态内容

hello World的例子中頁面内容是不會變化的,類似于靜态HTML頁面。

下面例子顯示一個動态内容,每次重新整理頁面,頁面資料都會變化。

在Views.py中的添加代碼:

def currentTime(request):

    now = datetime.datetime.now()

    html = "<html><body>It is now %s.</body></html>" % now

    return HttpResponse(html)

引入datetime類

在urls中添加  『url(r'^time/$','mysite.views.currentTime', name='currentTime'),』

運作項目。

頁面将顯示目前時間It is now 2015-05-04 23:04:46.875000.

重新整理之後顯示最新時間It is now 2015-05-04 23:11:47.446000.

下一節将學習動态URL