Django快速入門


快速安裝

在使用Django之前,我們需要把它先安裝好。我們這裡有一個完整的安裝指南,涵蓋了所有的可能性; 本指南將引導您通過簡單的,最小化安裝。

Windows 安裝參考:https://docs.djangoproject.com/en/1.9/howto/windows/

安裝Python

作為一個Python Web框架,Django 需要 Python 環境的支援。Python中包括一個輕量級的資料庫:SQLite,所以我們不會需要建立資料庫。

獲得 Python 的最新版本在以下網址:https://www.python.org/download/ 或選擇你對應作業系統的軟體包管理器。
可以驗證Python是否安裝,通過從shell 鍵入python; 應該看到類似這樣輸出結果:
Python 3.4.x
[GCC 4.x] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

組態資料庫

如果想使用像PostgreSQL,MySQL和Oracle這些一個「大」資料庫引擎工作。要安裝這樣的資料庫,請查閱資料庫的安裝資訊

刪除所有舊版本的Django

如果您是從舊版本昇級安裝Django的等方面,需要安裝新版本前解除安裝舊版本的Django

安裝Django

一般使用三個簡單的選項來安裝Django:
  • 安裝由作業系統分配提供的一個Django版本。 這是最快的選擇對於那些有分發Django的作業系統。
  • 安裝官方發布版本。這是大多數使用者的最佳方法。
  • 安裝最新開發版本。此選項是那些想要最新的,並且不怕新程式碼有BUG的愛好者。您可能會遇到在開發新版本遇到bug,並報告給他們以幫助Django的發展。另外,第三方軟體包版本在開發版本不太可能比最新的穩定版本相容。

安裝Windows

我們假設你的 Django 存檔並且 Python 安裝在計算機上,當前的最新版本是:1.9.1,可通過以下網址下載:https://www.djangoproject.com/download/
首先,路徑驗證。

在某些版本的Windows(Windows 7)中,需要確保 Path 系統變數的路徑如下:C:\Python27\;C:\Python27\Lib\site-packages\django\bin\ 在裡面,當然這取決於你的Python版本。

然後,提取和安裝Django,這裡我們把解壓到 C:\Python27\

接下來,通過執行以下命令,在windows shell 「cmd」 可能需要管理許可權來安裝Django ?

C:\Python27\Django-1.9.1>python setup.py install 

要測試你的安裝,開啟命令提示字元,從 shell 輸入Python可以看到。然後在Python提示符,嘗試匯入Django:

>>> import django
>>> print(django.get_version())
1.9.1
這就算安裝完成了。接下來我們要進入開發的第一步。

開發第一個Django app

讓我們開始建立一個Web應用程式並一步步地學習。
在本教學中,將引導您完成建立一個基本的民意調查 (poll) 的應用。
這將包括兩部分:
  • 一個公共網站,讓人們在上面檢視投票和投票。
  • 一個網站管理,您可以新增,更改和刪除投票。
假設你的 Django 已經安裝完成。可以確認 Django 安裝和版本,執行以下命令:
$ python -c "import django; print(django.get_version())"  

如果安裝 Django,你應該看到安裝的版本。如果還未安裝會得到一個錯誤提示: 「No module named django」。

本教學是使用 Django1.9和Python2.7或更高版本編寫的。如果Django的版本不匹配,您可以通過使用版本切換 Django 版本,或者 Django 更新到最新版本。如果還在使用Python2.7,則需要稍微調整程式碼,如在註釋中描述。

建立一個專案

如果第一次使用Django,必須採取一些初始設定。也就是說,需要自動生成一些程式碼,建立一個Django專案 - 設定Django範例的集合,包括資料庫組態,Django 特定選項和特定應用程式設定。

在命令列,cd 到你想要儲存程式碼目錄,比如,這裡我建立專案的地方是:C:\Python7\ ,然後執行以下命令:
C:\python27> django-admin startproject mysite
這將在 C:\python17下建立 mysite 目錄。如下圖:

讓我們來看看 startproject 命令建立的目錄結構:
mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

對上面這些檔案的簡要說明:

  • 在 mysite/ 根目錄上級僅僅是一個容器專案。對於Django它的名字隨意,可以將其重新命名為任何你喜歡的。
  • manage.py: 一個命令列工具,可以讓您以各種方式與Django專案進行互動。你可以閱讀所有關於manage.py 在 django-admin和manage.py 的細節
  • 內部 mysite/目錄是實際專案的Python包。它的名字是你需要使用匯入裡面的任何Python包的名稱(例如mysite.urls)。
  • mysite/__init__.py: 一個空檔案,該檔案告訴Python這個目錄應該作為一個Python包。
  • mysite/settings.py: 設定/組態這個Django專案。 Django的設定,會告訴你如何設定工作。
  • mysite/urls.py: 該 URL 宣告這個Django專案; 類似Django網站的一個「表的內容」。
  • mysite/wsgi.py: 一個WSGI相容Web伺服器的入口點,以滿足您的專案需要。
開發伺服器

讓我們來驗證你的Django專案工程。更改到外mysite的目錄,如果你有沒有準備好,並執行以下命令:
C:\python27\mysite> python manage.py runserver
你會看到在命令列下面的輸出:
Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

January 24, 2016 - 15:50:53
Django version 1.9, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.

你已經啟動Django開發伺服器,它是用Python寫的純粹一個輕量級的Web伺服器。我們已經包含在 Django 中了,所以你可以很快開發東西了,而不必處理組態生產伺服器 - 如:Apache 。

需要注意的是:不要在任何類似生產環境中使用此伺服器。它的目的只是用於開發(我們是在使用Web框架,而不是Web伺服器的業務。)

現在,伺服器的執行,請使用Web瀏覽器存取:http://127.0.0.1:8000/。會看到一個「Welcome to Django」頁面。這表示它安裝成功了!

預設情況下 runserver 命令啟動就在內部IP開發伺服器的埠 8000。
如果你想改變伺服器的埠,將它作為命令列引數。例如,下面這個命令會在伺服器8080埠執行:
$ python manage.py runserver 8080
如果想改變伺服器的IP,傳遞給它埠。(如果你想暴露在其他計算機或網路上工作)所有公網IP聽,使用以下方法:
$ python manage.py runserver 0.0.0.0:8000

建立Polls app

現在的「project」 - 設定完畢後就開始可以工作了。

在Django寫的每個應用程式包含一個Python包,遵循一定的約定。 Django提供了一個實用程式,自動生成一個應用程式的基本目錄結構,這樣就可以專注於寫程式碼而不是建立目錄。

應用程式可以在Python路徑中的任何地方。在本教學中,我們將建立投票程式在 manage.py 檔案同級目錄中,以便它可以被匯入作為自己的頂層模組,而不是 mysite 的一個子模組。
在建立應用程式前,確保你在 manage.py 同一個目錄中並鍵入以下命令:
C:\python27\mysite> python manage.py startapp polls
這將建立一個目錄polls,這是目錄結構是這樣的:
polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
這個目錄結構中的 poll 應用程式。

編寫檢視程式碼

現在我們來編寫的第一個檢視。開啟檔案polls/views.py,把下面的Python程式碼放入裡面:
polls/views.py
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
這是 Django 最簡單的檢視。要呼叫這個檢視還需要把它對映到一個URL - 對於這一點,我們需要 URL 組態。
要在polls 目錄建立URL組態,建立一個名為 urls.py 檔案,現在您的應用程式目錄應該是這樣的:
polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py
polls/urls.py檔案包含以下程式碼:
polls/urls.py
from django.conf.urls import url from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

下一步驟是讓 polls.urls 模組指向該ROOT_URLCONF。在 mysite/urls.py 中, 增加匯入 django.conf.urls.include 並插入 include() 在URL模式列表中,所以這裡有:

mysite/urls.py
from django.conf.urls import include, url from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]
現在已經連線索引檢視到URL組態。讓我們來驗證它結果,執行以下命令:
C:\Python27\mysite> python manage.py runserver  

在瀏覽器中開啟http://localhost:8000/polls/,應該看到如下文字顯示: 「Hello, world. You’re at the polls index.」, 在 index 檢視中所定義。

url()函式傳遞四個引數,兩個必需的:regex 和 view,以及兩個可選:kwargs 和 name。

url() 引數: regex

術語「regex」是一種常用的縮寫形式,意思是「正規表示式」,這是一個語法字串匹配模式,或在我們的範例中是URL模式。Django從第一個正規表示式開始,並使得其遍歷列表,比對每一個正規表示式的請求的URL,直到它找到一個匹配。

請注意,這些正規表示式不搜尋GET和POST引數,或者域名。例如,在一個請求https://www.example.com/myapp/, URLconf 會尋找myapp/.在一個請求 https://www.example.com/myapp/?page=3, URLconf 還將尋找 myapp/.

如果需要使用正規表示式的幫助,請參見維基百科的條目和 re 模組的文件。 然而在實踐中,你並不需要成為正規表示式的專家,因為只需要知道如何捕捉簡單的模式。事實上,複雜的正規表示式可以查詢效能較差,所以你可能不依賴於正規表示式的全部功能。

最後,一個關於效能的事項需要了解:這些正規表示式編譯首次URL組態模組被載入。它們是超級的快(只要查詢東西不是太複雜 - 如上所述)。

url() 引數: view

當 Django 找到正規表示式匹配,Django呼叫指定的檢視函式,使用 HTTP 請求物件作為第一個引數,從正規表示式「捕獲」的其他引數作為其它的值。 正規表示式使用簡單的捕捉,值傳遞是通過位置引數;如果使用名為捕捉,值傳遞關鍵字引數。我們將給出一個例子。

url() 引數: kwargs

任意關鍵字引數可以通過在字典中的目標檢視。在本教學我們不打算使用Django的這一特點。


url() argument: name

命名網址可以參考它,明確地從其他地方在Django - 尤其是模板。 這種強大的功能可讓您進行全域性更改到專案的URL模式,而只需要修改一個檔案。接下來我們學習如何在 Django 使用資料功能。

快速入門系列教學:

2 - Django快速入門-資料庫模型

3 - Django快速入門-檢視
4 - Django快速入門-表單