django 學(xué)習(xí)筆記三

自定義 URL 對(duì)應(yīng)的視圖

在 views.py 中增加 URL 的過(guò)濾和響應(yīng)事件

在 views.py 中增加過(guò)濾

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello world, You're at the polls index.")

新建 urls.py

此 urls.py 中主要是為了設(shè)置 URL 的攔截

攔截到url 后费奸,通過(guò)攔截到的URL和 request 做一些不同的響應(yīng)(response)

^$ 代表所有的路徑都要進(jìn)行過(guò)濾

urlpatterns = [
    url(r'^$', views.index, name='index')
    ]

這樣配置后將 views 中的 index 方法注冊(cè)為了 URL的過(guò)濾和處理的一個(gè)方法,所有的網(wǎng)絡(luò)請(qǐng)求,都會(huì)進(jìn)入此方法進(jìn)行匹配

【說(shuō)明】r'^' 這個(gè)是正則表達(dá)式

注冊(cè) urls.py 文件

在前兩步只是定義了方法和聲明這個(gè)方法為 url 的過(guò)濾方法之一亿胸,但是我們的定義和聲明都在 views.py 比庄、 urls.py 文件中放置元践,程序并不會(huì)執(zhí)行到這個(gè)地方讯蒲,我們需要告訴程序

在 工程的 urls.py 文件中配置

path.png
此處配置了URL的過(guò)濾
第一行是:將匹配到 polls/ 路徑下的 的所有請(qǐng)求使用 polls.urls.py 文件中的過(guò)濾方法進(jìn)行過(guò)濾
第二行是默認(rèn)的執(zhí)行過(guò)濾
urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', include(admin.site.urls))
]

正則

針對(duì) URL /polls/test/ 說(shuō)明匹配

  • jango發(fā)現(xiàn)匹配到了正則表達(dá)式'^polls/'
  • 然后沿盅,Django將去掉匹配到的文本("polls/")并將剩下的文本 —— "test/" —— 發(fā)送給‘polls.urls’ URLconf 做進(jìn)一步處理

url() 方法的使用

url()函數(shù)具有四個(gè)參數(shù):兩個(gè)必需的regex和 view把篓,以及兩個(gè)可選的kwargs和name。 到這里腰涧,就可以研究下這些參數(shù)的含義了

r'^(?P<question_id>[0-9]+)/$'

很明顯這個(gè)是正則 (?P<question_id>) 定義了一個(gè)名字韧掩,它將用于標(biāo)識(shí)匹配的模式
[0-9]是標(biāo)識(shí)至少存在一個(gè)數(shù)字

模板

  • 將模板放置在 templates 的 polls 目錄下面。因?yàn)?通過(guò) polls 相當(dāng)于是創(chuàng)建了命名空間
  • 在 views.py 中窖铡,不同的 path 返回不同的模板
  • views.py 文件就是一個(gè)中間者 mvc 中的 c疗锐。模板就是 v。傳給模板的值就是 m

模板的使用

def index(request):
    last_question_list = Question.objects.order_by('-pub_date')[:5]

    # 因?yàn)槲覀兾覀円呀?jīng)設(shè)置過(guò)查找 templates 并且默認(rèn)的就是查找 templates 费彼,故默認(rèn)就是在 templates 文件下
    # 取出模板
    indexTemplate = loader.get_template('polls/index.html')

    # 創(chuàng)建一個(gè)渲染上下文
    context = RequestContext(request, {
        'latest_question_list': last_question_list,
    })

    # 將上下文應(yīng)用到模板
    out_put = indexTemplate.render({
        'latest_question_list': last_question_list,
    })

    return HttpResponse(out_put)

404

    # 此處是獲取對(duì)象的屬性
    # get_object_or_404()
    # 函數(shù)將一個(gè)Django模型作為它的第一個(gè)參數(shù)滑臊,任意數(shù)量的關(guān)鍵字參數(shù)作為它的第二個(gè)參數(shù),它會(huì)將這些關(guān)鍵字參數(shù)傳遞給模型管理器中的get()
    # 函數(shù)箍铲。如果對(duì)象不存在雇卷,它就引發(fā)一個(gè)
    # Http404異常。

    # 還有一個(gè)get_list_or_404()
    # 函數(shù)颠猴,它的工作方式類(lèi)似get_object_or_404()  —— 差別在于它使用filter()
    # 而不是get()关划。如果列表為空則引發(fā)Http404。
    question = get_object_or_404(Question,pk=question_id)

URL 的三種寫(xiě)法

<a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a>
<a href="{% url 'detail' question.id %}">{{ question.question_text }}</a>
<a href="/polls/{{ question.id }}">{{ question.question_text }}</a>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末翘瓮,一起剝皮案震驚了整個(gè)濱河市贮折,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌资盅,老刑警劉巖调榄,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異律姨,居然都是意外死亡振峻,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)择份,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人烫堤,你說(shuō)我怎么就攤上這事荣赶》锛郏” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拔创,是天一觀的道長(zhǎng)利诺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)剩燥,這世上最難降的妖魔是什么慢逾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮灭红,結(jié)果婚禮上侣滩,老公的妹妹穿的比我還像新娘。我一直安慰自己变擒,他們只是感情好君珠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著娇斑,像睡著了一般策添。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毫缆,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天唯竹,我揣著相機(jī)與錄音,去河邊找鬼苦丁。 笑死浸颓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芬骄。 我是一名探鬼主播猾愿,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼账阻!你這毒婦竟也來(lái)了蒂秘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤淘太,失蹤者是張志新(化名)和其女友劉穎姻僧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蒲牧,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撇贺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冰抢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片松嘶。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挎扰,靈堂內(nèi)的尸體忽然破棺而出翠订,到底是詐尸還是另有隱情巢音,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布尽超,位于F島的核電站官撼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏似谁。R本人自食惡果不足惜傲绣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巩踏。 院中可真熱鬧秃诵,春花似錦、人聲如沸蛀缝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屈梁。三九已至嗤练,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間在讶,已是汗流浹背煞抬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留构哺,地道東北人革答。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像曙强,于是被迫代替她去往敵國(guó)和親残拐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容