標籤:
2.第一個Django項目
上一章節我們完成了python,django和資料庫等運行環境的安裝,現在我們來建立第一個django project吧,邁出使用django開發應用的第一步。
2.1.建立第一個Django項目
我們建立一個我們存放Django的工作目錄,樣本:C:\My Files\Python Projects 在命令提示字元視窗進入到剛才建立的目錄,運行運行命令:
django-admin.py startproject mysite
這樣會在你的目前的目錄下建立一個目錄mysite。
注意:確保在Windows的 PATH 環境變數中增加了django-admin.py檔案路徑:C:\Python27\Scripts,如沒有增加路徑可以通過運行如下命令:
path %path%; C:\Python27\Scripts
startproject 命令建立一個目錄,包含內容如下:
mysite/manage.py mysite/ __init__.py wsgi.py settings.py urls.py
目錄及檔案說明如下:
- manage.py :一種命令列工具,允許你以多種方式與該 Django 項目進行互動。 鍵入python manage.py help,查看協助。
子mysite/ 下檔案:
- __init__.py :讓 Python 把該目錄當成一個開發包 (即一組模組)所需的檔案。 這是一個空檔案,一般不需要修改它。
- settings.py :該檔案是 Django 項目的設定或設定檔。
- urls.py:Django項目的URL設定檔,其為你的django網站的目錄。
- wsgi.py:Django項目的wsgi配置,Web伺服器網關介面檔案(Python Web Server Gateway Interface,縮寫為WSGI)。
2.2.運行程式開發伺服器
django開發服務是可用在開發期間的,一個內建的,輕量的web服務。在準備發布產品之前,無需進行產品級 Web 服務器(比如 Apache)的配置工作。 程式開發伺服器監測你的代碼並自動載入它,修改代碼時無需重啟動服務,就可以查看修改結果。
切換到項目目錄 (cd mysite ),運行下面的命令:
python manage.py runserver
這將會在連接埠8000啟動一個本機伺服器, 並且只能從你的這台電腦串連和訪問。 既然伺服器已經運行起來了,現在用網頁瀏覽器訪問 http://127.0.0.1:8000/ 。 我們可以看到一個淡藍色Django歡迎頁面。
它開始工作了,如:
2.3.Hello World頁面
我們的第一個目標,是建立一個網頁,用來輸出這個著名的樣本資訊:Hello world.
如果你曾經發布過Hello world頁面,但是沒有使用網頁架構,只是簡單的在hello.html文字檔中輸入Hello World,然後上傳到一個網頁伺服器上,如:http:// 127.0.0.1/helloWorld.html
注意,這裡有兩個關鍵的資訊: ①一個包括字串 "Hello world"的頁面;②頁面的URL( http://127.0.0.1/helloWorld.html)。
使用Django在做網頁會比較不一樣,我們會用不同的方法來完成這兩個關鍵資訊。①頁面的內容是靠view function(視圖函數)來實現;②URL定義在urls.py檔案的 URLconf配置資訊裡。
首先,我們先寫一個關於Hello World視圖函數。
第一份視圖:
在上一章我們使用django-admin.py startproject建立的mysite檔案夾中,我們手工建立一個叫做views.py的空檔案。這個檔案將包含這一章的視圖定義資訊。 view.py檔案名稱為Django約定俗成,便於理解和閱讀代碼。
我們的Hello world視圖非常簡單。 是一個完整的函數和匯入聲明,你需要輸入到views.py檔案的內容如下:
from django.http import HttpResponse def helloworld(request): return HttpResponse("Hello world")
說明:Django一個視圖就是Python的一個函數。這個函數第一個參數的類型是HttpRequest;它返回一個HttpResponse執行個體。下面我們將使我們的第一個一個Python的函數成為一個Django可識別的視圖。
2.3.1.你的第一個URLconf
我們把URLconf配置資訊理解為Django網站的目錄。 它的本質上是定義 URL 模式以及要為該 URL 模式調用的視圖函數之間的映射表。通過這個映射表Django就可以知道,對於某個特定的URL訪問,需要執行那個具體的視圖函數代碼。 例如,當使用者訪問/ helloworld /時,調用視圖函數helloworld (),這個視圖函數存在於Python模組檔案view.py中。
前一章中執行 django-admin.py startproject 時,自動為建立了一份 URLconf(即 urls.py 檔案)。 預設的urls.py會像下面這個樣子:
from django.conf.urls import patterns, include, url # 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)),)
我們想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可。下面示範如何添加view中helloworld功能:
from django.conf.urls import patterns, include, urlfrom mysite.views import helloworld # 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/$‘, helloworld),)
儲存檔案,如果沒有啟動Django程式開發伺服器來測試修改好的 URLconf,運行命令列 python manage.py runserver 。
如果剛才它一直運行,不需要手工重啟、程式開發伺服器會自動監測代碼改動並自動重新裝載新加資訊。直接重新整理剛才的網頁http://127.0.0.1:8000/就可以看到:
如,網站已經看到我們映射的網頁目錄。
開啟你的瀏覽器訪問 http://127.0.0.1:8000/helloworld/ 。 你就可以看到輸出結果了。 程式開發伺服器將自動檢測Python代碼的更改情況來做必要的重新載入。開啟瀏覽器直接輸入“http://127.0.0.1:8000/ helloworld/”,我們將看到我們建立的第一個Django視圖輸出的Hello world。
現在我們已經成功建立了第一個Django的web頁面。
2.4.小結
Django網站與原來常規的網站頁面會比較大的差別,傳統網站的靜態頁面檔案,在Django架構裡都變成了一個一個對應的視圖函數,需要我們注意。下一章節會介紹到Django如何通過動態拼接html頁面代碼來實現網站頁面的。本文主要為初學者提供Django入門和一些具體實踐例子內容。關於更多的Django運行和裝載原理,請參考《The Django Book》網站。
Python開發入門與實戰2-第一個Django項目