Django視圖和URL配置詳解
本文研究的主要是Django視圖和URL配置,具體介紹如下。
一、視圖
1.在mysite文件夾下,創(chuàng)建views.py文件(文件名沒有特別的要求);
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world")
2.修改mysite文件夾下的urls.py文件;
from django.conf.urls import url from django.contrib import admin from mysite.views import hello urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^hello/$', hello), ]
3.運(yùn)行命令: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)下顯示;

二、Django是如何處理請求
1.當(dāng)你運(yùn)行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 datetime
def hello(request):
return HttpResponse("Hello world")
def current_datetime(request):
now = datetime.datetime.now()
html = "<html><body>It is now %s.</body></html>" % now
return HttpResponse(html)
2.在項(xiàng)目urls.py中添加,如下配置:
from django.conf.urls import url from django.contrib import admin from mysite.views import hello , current_datetime urlpatterns = [ 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 admin
from mysite.views import hello , current_datetime , hours_ahead
urlpatterns = [
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é)
以上就是本文關(guān)于Django視圖和URL配置詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
Django給表單添加honeypot驗(yàn)證增加安全性
這篇文章主要介紹了Django給表單添加honeypot驗(yàn)證增加安全性的方法,幫助大家更好的理解和學(xué)習(xí)使用Django框架,感興趣的朋友可以了解下2021-05-05
Python利用卡方Chi特征檢驗(yàn)實(shí)現(xiàn)提取關(guān)鍵文本特征
卡方檢驗(yàn)最基本的思想就是通過觀察實(shí)際值與理論值的偏差來確定理論的正確與否。本文將利用卡方Chi特征檢驗(yàn)實(shí)現(xiàn)提取關(guān)鍵文本特征功能,感興趣的可以了解一下2022-12-12
Python使用背景差分器實(shí)現(xiàn)運(yùn)動物體檢測
目前,許多運(yùn)動檢測技術(shù)都是基于簡單的背景差分概念的,因此本文將基于背景差分器(MOG背景差分器和KNN背景差分器)來實(shí)現(xiàn)運(yùn)動物體的檢測,感興趣的可以了解一下2022-02-02
python 獲取網(wǎng)頁編碼方式實(shí)現(xiàn)代碼
這篇文章主要介紹了python 獲取網(wǎng)頁編碼方式實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03
Tensorflow中的圖(tf.Graph)和會話(tf.Session)的實(shí)現(xiàn)
這篇文章主要介紹了Tensorflow中的圖(tf.Graph)和會話(tf.Session)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

