Django視圖和URL配置詳解
本文研究的主要是Django視圖和URL配置,具體介紹如下。
一、視圖
1.在mysite文件夾下,創(chuàng)建views.py文件(文件名沒(méi)有特別的要求);
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。在瀏覽器訪問(wèn)http://127.0.0.1:8000/hello/;
4.你的URL申請(qǐng)?jiān)赨RLconf中沒(méi)有定義,“404錯(cuò)誤”頁(yè)面就會(huì)顯示,它精確的告訴你Django調(diào)用在哪個(gè)URLconf及其包含的每個(gè)模式,該頁(yè)面只會(huì)在調(diào)試模式(debug mode)下顯示;
二、Django是如何處理請(qǐng)求
1.當(dāng)你運(yùn)行python manage.py runserver,在manage.py同一個(gè)目錄下查找名為setting.py的文件,該文件包含了關(guān)于所有Django項(xiàng)目的配置信息;
ROOT_URLCONF='mysite.urls'#指向自動(dòng)生產(chǎn)的urls.py
2.瀏覽器里敲http://127.0.0.1:8000/hello訪問(wèn)時(shí)候,根據(jù)ROOT_URLCONF的設(shè)置裝載URLconf,然后按順序逐個(gè)匹配URLConf里面的URLpatterns,直到找到一個(gè)匹配的;
3.當(dāng)找到這個(gè)匹配的URLpatterns就調(diào)用相關(guān)聯(lián)的view函數(shù),并把HttpRequest對(duì)象作為第一個(gè)參數(shù);
4.Django轉(zhuǎn)換成HttpResponse為一個(gè)適合的HTTP reponse,以Web page顯示出來(lái);
三、動(dòng)態(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.重新啟動(dòng)服務(wù),訪問(wèn)http://127.0.0.1:8000/time
4.松耦合原則,URL的定義和視圖函數(shù)之間的松耦合;
四、動(dòng)態(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.重新啟動(dòng)服務(wù),訪問(wèn)http://127.0.0.1:8000/time/1
總結(jié)
以上就是本文關(guān)于Django視圖和URL配置詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Python?ChineseCalendar包主要類(lèi)和方法詳解
ChineseCalendar?是一個(gè)?Python?包,用于獲取中國(guó)傳統(tǒng)日歷信息。這個(gè)包提供了中國(guó)農(nóng)歷、二十四節(jié)氣、傳統(tǒng)節(jié)日、黃歷等信息,這篇文章主要介紹了Python?ChineseCalendar包簡(jiǎn)介,需要的朋友可以參考下2023-03-03Django之使用celery和NGINX生成靜態(tài)頁(yè)面實(shí)現(xiàn)性能優(yōu)化
這篇文章主要介紹了Django之使用celery和NGINX生成靜態(tài)頁(yè)面實(shí)現(xiàn)性能優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python+MongoDB自增鍵值的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Python+MongoDB自增鍵值的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11Python tkinter模塊中類(lèi)繼承的三種方式分析
這篇文章主要介紹了Python tkinter模塊中類(lèi)繼承的三種方式,結(jié)合實(shí)例形式分析了三種繼承方式的實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-08-08教你使用python實(shí)現(xiàn)微信每天給女朋友說(shuō)晚安
非常棒的一個(gè)python小實(shí)戰(zhàn),文章主要教大家如何用python實(shí)現(xiàn)微信每天給女朋友說(shuō)晚安,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03Python 生成 -1~1 之間的隨機(jī)數(shù)矩陣方法
今天小編就為大家分享一篇Python 生成 -1~1 之間的隨機(jī)數(shù)矩陣方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08python腳本實(shí)現(xiàn)xls(xlsx)轉(zhuǎn)成csv
這篇文章主要介紹了python腳本實(shí)現(xiàn)xls(xlsx)轉(zhuǎn)成csv的相關(guān)資料,需要的朋友可以參考下2016-04-04使用pycharm連接讀取orcl數(shù)據(jù)庫(kù)的表的操作方法
這篇文章主要介紹了使用pycharm連接讀取orcl數(shù)據(jù)庫(kù)的表的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01Python產(chǎn)生一個(gè)數(shù)值范圍內(nèi)的不重復(fù)的隨機(jī)數(shù)的實(shí)現(xiàn)方法
這篇文章主要介紹了Python產(chǎn)生一個(gè)數(shù)值范圍內(nèi)的不重復(fù)的隨機(jī)數(shù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08