在使用Django之前,我們需要把它先安裝好。我們這里有一個(gè)完整的安裝指南,涵蓋了所有的可能性; 本指南將引導(dǎo)您通過簡單的,最小化安裝。
Windows 安裝參考:https://docs.djangoproject.com/en/1.9/howto/windows/
作為一個(gè)Python Web框架,Django 需要 Python 環(huán)境的支持。Python中包括一個(gè)輕量級的數(shù)據(jù)庫:SQLite,所以我們不會需要建立數(shù)據(jù)庫。
Python 3.4.x [GCC 4.x] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
如果想使用像PostgreSQL,MySQL和Oracle這些一個(gè)“大”數(shù)據(jù)庫引擎工作。要安裝這樣的數(shù)據(jù)庫,請查閱數(shù)據(jù)庫的安裝信息。
在某些版本的Windows(Windows 7)中,需要確保 Path 系統(tǒng)變量的路徑如下:C:\Python27\;C:\Python27\Lib\site-packages\django\bin\ 在里面,當(dāng)然這取決于你的Python版本。
接下來,通過運(yùn)行以下命令,在windows shell “cmd” 可能需要管理權(quán)限來安裝Django ?
C:\Python27\Django-1.9.1>python setup.py install
要測試你的安裝,打開命令提示符,從 shell 輸入Python可以看到。然后在Python提示符,嘗試導(dǎo)入Django:
>>> import django >>> print(django.get_version()) 1.9.1
$ python -c "import django; print(django.get_version())"
如果安裝 Django,你應(yīng)該看到安裝的版本。如果還未安裝會得到一個(gè)錯(cuò)誤提示: “No module named django”。
本教程是使用 Django1.9和Python2.7或更高版本編寫的。如果Django的版本不匹配,您可以通過使用版本切換 Django 版本,或者 Django 更新到最新版本。如果還在使用Python2.7,則需要稍微調(diào)整代碼,如在注釋中描述。
如果第一次使用Django,必須采取一些初始設(shè)置。也就是說,需要自動(dòng)生成一些代碼,建立一個(gè)Django項(xiàng)目 - 設(shè)置Django實(shí)例的集合,包括數(shù)據(jù)庫配置,Django 特定選項(xiàng)和特定應(yīng)用程序設(shè)置。
C:\python27> django-admin startproject mysite

mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
對上面這些文件的簡要說明:
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.
你已經(jīng)啟動(dòng)Django開發(fā)服務(wù)器,它是用Python寫的純粹一個(gè)輕量級的Web服務(wù)器。我們已經(jīng)包含在 Django 中了,所以你可以很快開發(fā)東西了,而不必處理配置生產(chǎn)服務(wù)器 - 如:Apache 。
需要注意的是:不要在任何類似生產(chǎn)環(huán)境中使用此服務(wù)器。它的目的只是用于開發(fā)(我們是在使用Web框架,而不是Web服務(wù)器的業(yè)務(wù)。)

$ python manage.py runserver 8080
$ python manage.py runserver 0.0.0.0:8000
在Django寫的每個(gè)應(yīng)用程序包含一個(gè)Python包,遵循一定的約定。 Django提供了一個(gè)實(shí)用程序,自動(dòng)生成一個(gè)應(yīng)用程序的基本目錄結(jié)構(gòu),這樣就可以專注于寫代碼而不是建立目錄。
C:\python27\mysite> python manage.py startapp polls
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.index, name='index'), ]
下一步驟是讓 polls.urls 模塊指向該ROOT_URLCONF。在 mysite/urls.py 中, 增加導(dǎo)入 django.conf.urls.include 并插入 include() 在URL模式列表中,所以這里有:
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), ]
C:\Python27\mysite> python manage.py runserver
在瀏覽器中打開http://localhost:8000/polls/,應(yīng)該看到如下文字顯示: “Hello, world. You’re at the polls index.”, 在 index 視圖中所定義。
url()函數(shù)傳遞四個(gè)參數(shù),兩個(gè)必需的:regex 和 view,以及兩個(gè)可選:kwargs 和 name。
術(shù)語“regex”是一種常用的縮寫形式,意思是“正則表達(dá)式”,這是一個(gè)語法字符串匹配模式,或在我們的示例中是URL模式。Django從第一個(gè)正則表達(dá)式開始,并使得其遍歷列表,比對每一個(gè)正則表達(dá)式的請求的URL,直到它找到一個(gè)匹配。
請注意,這些正則表達(dá)式不搜索GET和POST參數(shù),或者域名。例如,在一個(gè)請求https://www.example.com/myapp/, URLconf 會尋找myapp/.在一個(gè)請求 https://www.example.com/myapp/?page=3, URLconf 還將尋找 myapp/.
如果需要使用正則表達(dá)式的幫助,請參見維基百科的條目和 re 模塊的文檔。 然而在實(shí)踐中,你并不需要成為正則表達(dá)式的專家,因?yàn)橹恍枰廊绾尾蹲胶唵蔚哪J?。事?shí)上,復(fù)雜的正則表達(dá)式可以查找性能較差,所以你可能不依賴于正則表達(dá)式的全部功能。
最后,一個(gè)關(guān)于性能的事項(xiàng)需要了解:這些正則表達(dá)式編譯首次URL配置模塊被加載。它們是超級的快(只要查找東西不是太復(fù)雜 - 如上所述)。
當(dāng) Django 找到正則表達(dá)式匹配,Django調(diào)用指定的視圖函數(shù),使用 HTTP 請求對象作為第一個(gè)參數(shù),從正則表達(dá)式“捕獲”的其他參數(shù)作為其它的值。 正則表達(dá)式使用簡單的捕捉,值傳遞是通過位置參數(shù);如果使用名為捕捉,值傳遞關(guān)鍵字參數(shù)。我們將給出一個(gè)例子。
命名網(wǎng)址可以參考它,明確地從其他地方在Django - 尤其是模板。 這種強(qiáng)大的功能可讓您進(jìn)行全局更改到項(xiàng)目的URL模式,而只需要修改一個(gè)文件。接下來我們學(xué)習(xí)如何在 Django 使用數(shù)據(jù)功能。
快速入門系列教程:
3 - Django快速入門-視圖
4 - Django快速入門-表單