天天看點

Django第一步

對于一個web架構,掌握了三部分的内容,就可以說是邁出了第一步。

1. 準備開發環境

2. 建立一個工程,并運作

3. 開發hello world應用

1. 準備環境

    首先應該是安裝python和django。這點官方網站有很詳細的說明,網上也有很多教程,這裡就不再重複了,隻是表達一個對作業系統的觀點:

          Mac OS:對程式員和使用者都很友好

          Linux:    對程式員很友好

          Widows:對使用者貌似友好

    到底使用哪個作業系統,仁者見仁。

   然後是開發工具的選擇。建議抛棄IDE,使用一個好的文本編輯器。強烈推薦vim。但如果你選擇Emacs,我無話可說。

2. 建立工程         

     Django作為一個web架構,第一步應該是能夠在浏覽器中看到頁面。如果已經安裝好環境的話。

     首先建立工程:django-admin.py startproject depot,即開始建立名為depot的工程。

     與rails相比,過程很安靜,結果很幹淨。如下:

      depot/

             __init__.py

             manage.py

             settings.py

             urls.py

這幾個檔案的作用如下:

     _init__.py :Python的子產品定義檔案。 這是一個空檔案,一般你不需要修改它。

     manage.py :一個指令行工具,生成這個檔案僅僅是為了友善。可以通過python manage.py help 檢視該工具的功能。完全不需要編輯這個檔案。

     settings.py :該 Django 項目的設定或配置。

     urls.py:Django項目的URL設定。

與rails不同,django初始工程的檔案很少,可以很容易地閱讀所有的代碼。但這些檔案已經構成了一個可運作的Django應用。

進入工程目錄并運作該工程:

cd depot/

python manage.py runserver

可以看到一些提示資訊:

Validating models...

0 errors found

Django version 1.3, using settings 'depot.settings'

Development server is running at http://127.0.0.1:8000/

Quit the server with CONTROL-C.

[29/Jan/2012 02:09:17] "GET / HTTP/1.1" 200 2049

此時web server(開發環境!)已經運作了,用浏覽器通路http://127.0.0.1:8000/,可以看到如下的界面:

Django第一步

說明Django已經開始工作了。

3. hello Django!

       與rails不同,django不需要生成controller,helper, view 等等一大堆檔案,要實作一個hello程式,隻需要幾行代碼。

       Django Web應用中通常包含URLconf, view, template, model 四個部分(參考《URLconf+MTV:Django眼中的MVC》)。但這些部分不是完全必需的。比如我們要實作一個最簡單的 "hello, Django!", 隻需要定義URLconf和view即可。

       讓我們把“需求”明确一下,hello,Django!實作如下功能:在浏覽器中輸入http://127.0.0.1:8000/hello, 顯示“hello Django!”。

      首先要實作一個視圖(view) 來響應請求。在Django中視圖是一個函數,該函數接受一個HttpRequest參數,并傳回一個HttpResponse。我們可以在任何地方定義這個函數,但通常會放在Django app 的 views.py 檔案中。在hello,Django中我們不需要建立一個Django app(因為不需要model),是以可以在project 目錄中建立一個view.py 檔案,并定義hello(request)視圖函數:

depot/views.py:

from django.http import HttpResponse

def hello(request):
    return HttpResponse("hello, Django!")
           

接下來是将前面定義的URL 映射到 這個視圖函數。這是由URLconf完成的。URLconf的本質是 URL 模式以及要為該 URL 模式調用的視圖函數之間的映射表。

打開生成的urls.py檔案,先在檔案前面import剛才建立的view,然後在tuple類型的變量urlpatterns中加入hello的映射關系:

from django.conf.urls.defaults import patterns, include, url
from depot.views import hello

urlpatterns = patterns('',
    url(r'^hello/$', hello),
)
           

此時通路 http:/127.0.0.1:8000/hello, 将會顯示 hello, Django!

URLconf了解起來也很容易,即 urlpatterns中的每一項是一個二進制組(正規表達式,視圖函數)。當Django 接收到HTTP請求的時候,從urlpatterns中找到比對的表達式,并将請求發生給對應的視圖函數,最後視圖函數傳回一個HTTP響應,交給Django處理。如此而已。

至此,Django的第一步已經邁出,你至少已經可以開始CGI風格的web開發了。