對於一個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已經開始工作了。
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開發了。