Django:视图和URL配置
生活随笔
收集整理的這篇文章主要介紹了
Django:视图和URL配置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、視圖? ? ?1.在mysite文件夾下。創(chuàng)建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.執(zhí)行命令:python manage.py runserver。
在瀏覽器訪問http://127.0.0.1:8000/hello/;
? ? ?4.你的URL申請?jiān)赨RLconf中未定義,“404錯(cuò)誤”頁面就會顯示。它精確的告訴你Django調(diào)用在哪個(gè)URLconf及其包括的每一個(gè)模式。該頁面僅僅會在調(diào)試模式(debug mode)下顯示;?????? ? ?5.使用URL模式”^$“匹配站點(diǎn)根文件夾URL模式;二、Django是怎樣處理請求? ? ?1.當(dāng)你執(zhí)行python manage.py runserver,在manage.py同一個(gè)文件夾下查找名為setting.py的文件,該文件包括了關(guān)于全部Django項(xiàng)目的配置信息。? ? ? ? ? ROOT_URLCONF='mysite.urls'#指向自己主動生產(chǎn)的urls.py? ? ?2.瀏覽器里敲http://127.0.0.1:8000/hello訪問時(shí)候,依據(jù)ROOT_URLCONF的設(shè)置裝載URLconf,然后按順序逐個(gè)匹配URLConf里面的URLpatterns,直到找到一個(gè)匹配的;? ? ?3.當(dāng)找到這個(gè)匹配的URLpatterns就調(diào)用相關(guān)聯(lián)的view函數(shù),并把HttpRequest對象作為第一個(gè)參數(shù);? ? ?4.Django轉(zhuǎn)換成HttpResponse為一個(gè)適合的HTTP reponse,以Web page顯示出來;三、動態(tài)內(nèi)容? ? ?1.在項(xiàng)目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.在項(xiàng)目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.又一次啟動服務(wù)。訪問http://127.0.0.1:8000/time? ? ?? ? ?4.松耦合原則,URL的定義和視圖函數(shù)之間的松耦合。四、動態(tài)URL?1.在項(xiàng)目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.在項(xiàng)目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.又一次啟動服務(wù)。訪問http://127.0.0.1:8000/time/1? ? ??總結(jié)
以上是生活随笔為你收集整理的Django:视图和URL配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用阿里云的免费SSL 证书让网站从HTT
- 下一篇: 竞品调研时发现的Android新设计特性