Django的視圖層 反向解析

在使用Django 項目時馏谨,一個常見的需求是獲得URL 的最終形式,以用于嵌入到生成的內(nèi)容中(視圖中和顯示給用戶的URL等)或者用于處理服務(wù)器端的導(dǎo)航(重定向等)乌妙。人們強烈希望不要硬編碼這些URL(費力、不可擴展且容易產(chǎn)生錯誤)或者設(shè)計一種與URLconf 毫不相關(guān)的專門的URL 生成機制,因為這樣容易導(dǎo)致一定程度上產(chǎn)生過期的URL奠蹬。

在需要URL 的地方,對于不同層級嗡午,Django 提供不同的工具用于URL 反查:

在模板中:使用url 模板標簽囤躁。
在Python 代碼中:使用django.core.urlresolvers.reverse() 函數(shù)。

urls.py:

from django.conf.urls import url

from . import views

urlpatterns = [
    #...
    url(r'^articles/([0-9]{4})/$', views.year_archive, name='news-year-archive'),
    #...
]

在模板中:

<a href="{% url 'news-year-archive' 2012 %}">2012 Archive</a>

<ul>
{% for yearvar in year_list %}
<li><a href="{% url 'news-year-archive' yearvar %}">{{ yearvar }} Archive</a></li>
{% endfor %}
</ul>

在python中

from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect

def redirect_to_year(request):
    # ...
    year = 2006
    # ...
    return HttpResponseRedirect(reverse('news-year-archive', args=(year,)))   # 同redirect("/path/")
圖片發(fā)自簡書App
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市狸演,隨后出現(xiàn)的幾起案子言蛇,更是在濱河造成了極大的恐慌,老刑警劉巖宵距,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腊尚,死亡現(xiàn)場離奇詭異,居然都是意外死亡满哪,警方通過查閱死者的電腦和手機婿斥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哨鸭,“玉大人受扳,你說我怎么就攤上這事⊥玫” “怎么了勘高?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坟桅。 經(jīng)常有香客問我华望,道長,這世上最難降的妖魔是什么仅乓? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任赖舟,我火速辦了婚禮,結(jié)果婚禮上夸楣,老公的妹妹穿的比我還像新娘宾抓。我一直安慰自己,他們只是感情好豫喧,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布石洗。 她就那樣靜靜地躺著,像睡著了一般紧显。 火紅的嫁衣襯著肌膚如雪讲衫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天孵班,我揣著相機與錄音涉兽,去河邊找鬼。 笑死篙程,一個胖子當著我的面吹牛枷畏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播虱饿,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼拥诡,長吁一口氣:“原來是場噩夢啊……” “哼丹允!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起袋倔,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤雕蔽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后宾娜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體批狐,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年前塔,在試婚紗的時候發(fā)現(xiàn)自己被綠了嚣艇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡华弓,死狀恐怖食零,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寂屏,我是刑警寧澤贰谣,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站迁霎,受9級特大地震影響吱抚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜考廉,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一秘豹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昌粤,春花似錦既绕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至膊升,卻和暖如春怎炊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廓译。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留债查,地道東北人非区。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像盹廷,于是被迫代替她去往敵國和親征绸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

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

  • 已經(jīng)同步到gitbook,想閱讀的請轉(zhuǎn)到gitbook: Django 1.10 中文文檔 URL dispatc...
    leyu閱讀 14,205評論 0 16
  • 一管怠、Django框架前言知識: 1淆衷、C/S和B/S的區(qū)別: C/S結(jié)構(gòu)軟件:客戶端/服務(wù)端軟件,即客戶端要自己下載...
    月下獨酌123閱讀 4,552評論 0 36
  • 模塊間聯(lián)系越多渤弛,其耦合性越強祝拯,同時表明其獨立性越差( 降低耦合性,可以提高其獨立性)她肯。軟件設(shè)計中通常用耦合度和內(nèi)聚...
    riverstation閱讀 2,074評論 0 8
  • 已經(jīng)同步到gitbook佳头,想閱讀的請轉(zhuǎn)到gitbook: Django 1.10 中文文檔 Writing you...
    leyu閱讀 641評論 1 1
  • Web框架中的一些概念 MVC 大部分開發(fā)語言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模塊之間的...
    羋學(xué)僧閱讀 2,554評論 0 0