一、視圖
? ? ?1.在mysite文件夾下。創建views.py文件(文件名稱沒有特別的要求);
from django.http import HttpResponsedef hello(request):return HttpResponse("Hello world")
? ? ?2.改動mysite文件夾下的urls.py文件;??
from django.conf.urls import url
from django.contrib import adminfrom mysite.views import hellourlpatterns = [url(r'^admin/', admin.site.urls),url(r'^hello/$', hello),
]
? ? ?3.執行命令:python manage.py runserver。
在瀏覽器訪問http://127.0.0.1:8000/hello/;
? ? ?4.你的URL申請在URLconf中未定義,“404錯誤”頁面就會顯示。它精確的告訴你Django調用在哪個URLconf及其包括的每一個模式。該頁面僅僅會在調試模式(debug mode)下顯示;
?????

? ? ?5.使用URL模式”^$“匹配站點根文件夾URL模式;
二、Django是怎樣處理請求
? ? ?1.當你執行python manage.py runserver,在manage.py同一個文件夾下查找名為setting.py的文件,該文件包括了關于全部Django項目的配置信息。
? ? ? ? ? ROOT_URLCONF='mysite.urls'#指向自己主動生產的urls.py
? ? ?2.瀏覽器里敲http://127.0.0.1:8000/hello訪問時候,依據ROOT_URLCONF的設置裝載URLconf,然后按順序逐個匹配URLConf里面的URLpatterns,直到找到一個匹配的;
? ? ?3.當找到這個匹配的URLpatterns就調用相關聯的view函數,并把HttpRequest對象作為第一個參數;
? ? ?4.Django轉換成HttpResponse為一個適合的HTTP reponse,以Web page顯示出來;
三、動態內容
? ? ?1.在項目views.py中加入。例如以下視圖:
from django.http import HttpResponse
import datetimedef hello(request):return HttpResponse("Hello world")def current_datetime(request):now = datetime.datetime.now()html = "<html><body>It is now %s.</body></html>" % nowreturn HttpResponse(html)
? ? ?2.在項目urls.py中加入。例如以下配置:
from django.conf.urls import url
from django.contrib import adminfrom mysite.views import hello , current_datetimeurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^hello/$', hello),url(r'^time/$', current_datetime),
]
? ? ?3.又一次啟動服務。訪問http://127.0.0.1:8000/time
? ? ?

? ? ?4.松耦合原則,URL的定義和視圖函數之間的松耦合。
四、動態URL
?1.在項目views.py中加入。例如以下視圖:
from django.http import HttpResponse , Http404
import datetime
... ...
def hours_ahead(request, offset):try:offset = int(offset)except ValueError:raise Http404()dt = datetime.datetime.now() + datetime.timedelta(hours=offset)html = "<html><body>In %s hours(s), it will be %s.</body></html>" % (offset, dt)return HttpResponse(html)
? ? ?2.在項目urls.py中加入。例如以下配置:
from django.conf.urls import url
from django.contrib import adminfrom mysite.views import hello , current_datetime , hours_aheadurlpatterns = [url(r'^admin/', admin.site.urls),... ... url(r'^time/plus/(\d{1,2})/$', hours_ahead),
]
? ? ?3.又一次啟動服務。訪問http://127.0.0.1:8000/time/1
? ? ??
