一欠拾、創(chuàng)建Django項目
http://blog.csdn.net/pipisorry/article/details/38964249
創(chuàng)建項目
首先環(huán)境比那輛配置贡这,將django-admin.py路徑添加至Path
使用 django-admin.py 來創(chuàng)建 HelloWorld 項目:
django-admin startproject HelloWorld
創(chuàng)建完成后我們可以查看下項目的目錄結構:
cd HelloWorld/
tree /f
目錄說明:
HelloWorld:項目的容器炒俱。
manage.py:一個實用的命令行工具玫氢,可讓你以各種方式與該 Django 項目進行交互糙箍。
HelloWorld/init.py:一個空文件寸士,告訴 Python 該目錄是一個 Python 包檐什。
HelloWorld/settings.py:該 Django 項目的設置/配置碴卧。
HelloWorld/urls.py:該 Django 項目的 URL 聲明; 一份由 Django 驅動的網站"目錄"。決定127.0.0.1:8000后面可以接哪些內容乃正?
HelloWorld/wsgi.py:一個 WSGI 兼容的 Web 服務器的入口住册,以便運行你的項目。
啟動服務器
接下來我們進入 HelloWorld 目錄輸入以下命令瓮具,啟動服務器:
python manage.py runserver 0.0.0.0:8000
在其他電腦瀏覽器輸入服務器/電腦的ip(Windows的用戶在cmd中輸入ipconfig; Unix用戶輸入ifconfig)及端口號荧飞,如果正常啟動,輸出:
Note:
- 通常情況下名党,你每次修改過一個文件后開發(fā)服務器都會自動載入叹阔,但是創(chuàng)建一個新文件卻不會觸發(fā)自動載入的邏輯。
- 這時啟動的服務只能在本機訪問兑巾,這是因為服務只向本機(127.0.0.1:8000)提供条获,所以局域網的其他機器不能訪問。在另一臺機器上訪問django開放的界面會出現(xiàn)Page not found (404)錯誤蒋歌。
- 默認情況下帅掘,:djadmin:runserver 命令啟動的開發(fā)服務器只監(jiān)聽本地 IP 的 8000 端口。如果你想改變服務器的端口堂油,把它作為一個命令行參數(shù)傳遞即可修档。例如以下命令啟動的服務器將監(jiān)聽 8080 端口:python manage.py runserver 8080
二、視圖和 URL 配置
創(chuàng)建視圖函數(shù)
在先前創(chuàng)建的 HelloWorld 目錄下的 HelloWorld 目錄新建一個 view.py 文件府框,并輸入代碼:
HelloWorld/HelloWorld/view.py 文件代碼:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world ! ")
Note:
- 這里的view還是沒有和數(shù)據(jù)分開吱窝,比較low.
- 定義一個叫做hello 的視圖函數(shù)。每個視圖函數(shù)至少要有一個參數(shù)迫靖,通常被叫作request院峡。 這是一個觸發(fā)這個視圖、包含當前Web請求信息的對象系宜,是類django.http.HttpRequest的一個實例照激。在這個示例中,我們雖然不用request做任何事情盹牧,然而它仍必須是這個視圖的第一個參數(shù)俩垃。注意視圖函數(shù)的名稱并不重要。
這個函數(shù)只有簡單的一行代碼: 它僅僅返回一個HttpResponse對象汰寓,這個對象包含了文本“Hello world”口柳。- 一個視圖就是Python的一個函數(shù)。這個函數(shù)第一個參數(shù)的類型是HttpRequest有滑;它返回一個HttpResponse實例跃闹。為了使一個Python的函數(shù)成為一個Django可識別的視圖,它必須滿足這兩個條件。(也有例外)
綁定 URL 與視圖函數(shù)
接著辣卒,綁定 URL 與視圖函數(shù)掷贾。打開 urls.py 文件,刪除原來代碼荣茫,將以下代碼復制粘貼到 urls.py 文件中:
HelloWorld/HelloWorld/urls.py 文件代碼:
from django.conf.urls import url
from . import view
urlpatterns = [
url(r'^$', view.hello),
]
Note:
- url函數(shù)結構: url(regex,view,kwargs=None,name=None,prefix='')
- patterns函數(shù)的第一個參數(shù)即是view的前綴[Django的url用法]
- 告訴 Django想帅,所有指向 URL /hello/ 的請求都應由hello 這個視圖函數(shù)來處理
- Django在檢查URL模式前,移除每一個申請的URL開頭的斜杠(/)啡莉。 這意味著我們?yōu)?hello/寫URL模式不用包含斜杠(/)港准。如果有人申請訪問/hello(尾部沒有斜杠/)會怎樣。 因為我們的URL模式要求尾部有一個斜杠(/)咧欣,那個申請URL將不匹配浅缸。 然而,默認地魄咕,任何不匹配或尾部沒有斜杠(/)的申請URL衩椒,將被重定向至尾部包含斜杠的相同字眼的URL。 (這是受配置文件setting中APPEND_SLASH項控制的)
5. 把hello視圖函數(shù)作為一個對象傳遞哮兰,而不是調用它毛萌。
整個目錄結構如下: