用django如何進行頁面開發
在利用Django進行web開發前,我們需要先創建自己的目錄mysite。然后我們來看看用Django進行web端的開發步驟有哪些。
1 、編寫靜態頁面
我們以大家所熟知的Hello world頁面為例,為大家簡單介紹利用Django編寫靜態頁面的步驟(當然在編寫靜態頁面之前,你需要創建自己的mysite目錄)。
Step1:創建視圖文件
在用Django進行第一個頁面編寫之前,首先需要在創建好的mysite目錄下建立一個a.py的文件,并在其中寫入如下代碼,并保存:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world! This is my first trial. ")
我們逐行分析一下這段代碼:
首先,我們從django.http模塊導入HttpResponse類。
然后,定義一個叫做hello的視圖函數。 每個視圖函數至少要有一個參數,通常被叫作request。這是一個觸發這個視圖、包含當前Web請求信息的對象,是類django.http.HttpResponse的一個實例。在這個示例中,我們雖然不用request做任何事情,然而它仍必須是這個視圖的第一個參數。 注意視圖函數的名稱并不重要;并不一定非得以某種特定的方式命名才能讓Django識別它。 在這里我們把它命名為:hello,是因為這個名稱清晰的顯示了視圖的用意。同樣地,你可以用諸如:hello_wonderful_beautiful_world、maiziedu,這樣難看的短句來給它命名。
這個函數只有簡單的一行代碼: 它僅僅返回一個HttpResponse對象,這個對象包含了文本“Hello world”。
值得注意的就是,為了使一個Python的函數成為一個Django可識別的視圖,它必須滿足這兩個條件:一個視圖就是Python的一個函數;這個函數第一個參數的類型是HttpRequest;它返回一個HttpResponse實例。
Step2:進行URL配置
現在,如果你再運行:python manage.py runserver,你還將看到Django的歡迎頁面,而看不到我們剛才寫的Hello world顯示頁面。 那是因為我們的mysite項目還對hello視圖一無所知。我們需要通過一個詳細描述的URL來顯式的告訴它并且激活這個視圖。為了綁定視圖函數和URL,我們使用URLconf。
URLconf 就像是 Django 所支撐網站的目錄。 它的本質是 URL 模式以及要為該 URL 模式調用的視圖函數之間的映射表。 你就是以這種方式告訴 Django,對于這個 URL 調用這段代碼,對于那個 URL 調用那段代碼。 例如,當用戶訪問/foo/時,調用視圖函數foo_view(),這個視圖函數存在于Python模塊文件a.py中。
如果想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可. 這里演示如何添加view中hello功能。
from django.conf.urls import *
from mysite.views import hello
urlpatterns = patterns('',
('^hello/$', hello),
)
我們逐行分析一下這段代碼:
首先,我們從模塊中引入了hello視圖。
然后,我們為urlpatterns加上一行: (‘^hello/$’, hello), 這行被稱作URLpattern,它是一個Python的元組。元組中第一個元素是模式匹配字符串(正則表達式);第二個元素是那個模式將使用的視圖函數。
urlpattern中包含了一個尖號(^)和一個美元符號($)。這些都是正則表達式符號,并且有特定的含義: 上箭頭要求表達式對字符串的頭部進行匹配,美元符號則要求表達式對字符串的尾部進行匹配。
其實,這段代碼只是告訴Django,所有指向URL:/hello/的請求都應由hello這個視圖函數來處理。
Step3:啟動Django服務器查看頁面
啟動Django開發服務器來測試修改好的 URLconf, 運行命令行python manage.py runserver 。開發服務器的地址是 http://www.maiziedu.com/ ,打開你的瀏覽器訪問 http://www.maiziedu.com/hello/ 。 你就可以看到輸出結果了。開發服務器將自動檢測Python代碼的更改來做必要的重新加載, 所以你不需要重啟Server在代碼更改之后。服務器運行地址” http://www.maiziedu.com /“,所以打開瀏覽器直接輸入“ http://www.maiziedu.com/hello /”,你將看到由你的Django視圖輸出頁面如下所示:
Hello world! This is my first trial.
恭喜你,你成功運用Django編寫了一個靜態web頁面。
總結一下:
進來的請求轉入/hello/。
Django通過在ROOT_URLCONF配置來決定根URLconf。
Django在URLconf中的所有URL模式中,查找第一個匹配/hello/的條目。
如果找到匹配,將調用相應的視圖函數。
視圖函數返回一個HttpResponse。
Django轉換HttpResponse為一個適合的HTTP response,以Web page顯示出來。
其實做一個Django-powered頁面了,只需要寫視圖函數并用 URLconfs把它們和URLs對應起來就ok了。
2、 編寫第一個動態頁面
講完靜態頁面的編寫,下面我們通過一個顯示當前時間的頁面來簡單示范一下動態頁面的編寫,以current time頁面為例。其實動態頁面和靜態頁面的編寫是一樣的,也分兩部分組成:創建視圖和配置URL。
視圖文件a.py代碼如下:
from django.http import HttpResponse
import time
def current_time(request):
return HttpResponse("Current time is: "+time.strftime('%Y-%m-%d %H:%M:%S'))
URLconf文件urls.py代碼如下:
from django.conf.urls import *
from mysite.views import current_time
urlpatterns = patterns('',
('^current_time/$', current_time),
)
然后我們通過網址http://www.maiziedu.com/current_time/就可以看到編寫的第一個動態頁面了,它顯示的內容是你訪問該頁面時的當前時間,如下圖所示:
Current_time is:2015-07-02 14:12:05
到這里,利用 python Django進行Web頁面開發基本知識就講得差不多了,大家可能覺得很簡單,但我們講的都是基本操作,如果大家要設計出完美的web頁面,還需要經過一段時間的努力。
推薦學習:Django實戰視頻教程 http://www.maiziedu.com/course/python/307-3025/