国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django框架實現逆向解析url的方法

2020-02-15 22:10:22
字體:
來源:轉載
供稿:網友

本文實例講述了Django框架實現逆向解析url的方法。分享給大家供大家參考,具體如下:

Django中提供了一個關于URL的映射的解決方案,你可以做兩個方向的使用:

①. 有客戶端的瀏覽器發起一個url請求,Django根據URL解析,把url中的參數捕獲,調用相應的試圖,獲取相應的數據,然后返回給客戶端顯示

②. 通過一個視圖的名字,再加上一些參數和值,逆向獲取相應的URL

第一個就是平常的請求有URLconf來解析的過程,

第二個叫做,url的逆向解析,url逆向匹配,url的逆向查閱,等

Django提供了不同的層級的url逆向處理工具:

①. 在模板templates中,使用url標記,如:{% url %}

②. 在Python代碼中,使用django.core.urlresolvers.reverse()方法

③. 在更高一層級的處理url中,用get_absolute_url()方法

示例

看如下的URLconf:

from django.conf.urls import patterns, urlurlpatterns = patterns('',  #...  url(r'^articles/(/d{4})/$', 'news.views.year_archive'),  #...)

根據設計,這個url的目的是將是nnnn年的文章存檔(archive),即/articles/nnnn/

1.在模板中,可以這樣來使用:

<a href="{% url 'news.views.year_archive' 2012 %}" rel="external nofollow" >2012 Archive</a>{# Or with the year in a template context variable: #}<ul>{% for yearvar in year_list %}<li><a href="{% url 'news.views.year_archive' yearvar %}" rel="external nofollow" >{{ yearvar }} Archive</a></li>{% endfor %}</ul>

解釋一下:首先,根據視圖 'news.views.year_artichive'可以定位到指定的URLconf中,然后后面的2012來填充articles//d{4}

最終的結果為:

<a href="articles/2012/" rel="external nofollow" >2012 Archive</a>

這里就是根據試圖和所提供的值來逆向查詢url

下面的類似,

2.在python代碼中

from django.core.urlresolvers import reversefrom django.http import HttpResponseRedirectdef redirect_to_year(request):  # ...  year = 2006  # ...  return HttpResponseRedirect(reverse('news.views.year_archive', args=(year,)))

解釋一下:首先,必須引入django.core.urlresolvers.reverse() 方法,然后原理就是,根據提供的試圖和參數

的值來逆向查找URLconf,匹配相應的url然后把值拿回來,最后,reverse()返回的值為:articles/2006/,這樣就逆向的查出了需要的url

希望本文所述對大家基于Django框架的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 化隆| 绍兴市| 临安市| 莒南县| 茶陵县| 盐山县| 乌鲁木齐县| 陵水| 台中县| 伊吾县| 内丘县| 潜山县| 乡宁县| 伽师县| 东兴市| 中宁县| 驻马店市| 克东县| 大英县| 张家港市| 修水县| 长葛市| 阳曲县| 镇安县| 信丰县| 洛扎县| 凉山| 禄劝| 双流县| 小金县| 泸西县| 府谷县| 拉孜县| 淳安县| 潢川县| 信宜市| 湘阴县| 巴林左旗| 阳城县| 广州市| 伊金霍洛旗|