Python中url標(biāo)簽使用知識(shí)點(diǎn)總結(jié)
1.在模板中,我們經(jīng)常要使用一些url,實(shí)現(xiàn)頁(yè)面之間的跳轉(zhuǎn),比如某個(gè)a標(biāo)簽中需要定義href屬性。當(dāng)然如果通過(guò)硬編碼的方式直接將這個(gè)url固定在里面也是可以的,但是這樣的話,對(duì)于以后進(jìn)行代碼的維護(hù),可能就比較麻煩,因此建議使用這種動(dòng)態(tài)的方式來(lái)實(shí)現(xiàn),類(lèi)似于django中reverse一樣。示例代碼如下:
<li><a href="/">首頁(yè)</a></li> {# 此時(shí)采用動(dòng)態(tài)獲取url的方式,使用url標(biāo)簽可以在DTL模板中動(dòng)態(tài)獲取url,#} {# 而使用reverse()函數(shù),可以在Django中動(dòng)態(tài)獲取url標(biāo)簽,將視圖函數(shù)進(jìn)行反轉(zhuǎn),得到url. #} <li><a href="{% url 'book' %}">讀書(shū)</a></li> <li><a href="{% url 'movie' %}">電影</a></li> <li><a href="{% url 'city' %}">同城</a></li>
2.如果url進(jìn)行反轉(zhuǎn)的時(shí)候,需要傳遞參數(shù),那么就可以在后面?zhèn)鬟f,但是參數(shù)有位置參數(shù)和關(guān)鍵字參數(shù)。位置參數(shù)和關(guān)鍵字參數(shù)不能同時(shí)使用。示例代碼如下:
{# url反轉(zhuǎn),使用位置參數(shù),但是關(guān)鍵字參數(shù)和位置參數(shù)不能同時(shí)使用 #} <li><a href="{% url 'detal' 1 %}"></a></li> {# url反轉(zhuǎn),使用關(guān)鍵字參數(shù) #} {# 接收url中傳遞參數(shù),可以在url中直接傳遞參數(shù),并且指定參數(shù)的值,但是此時(shí)=兩邊不能有空格,否者的話,不能識(shí)別 #} <li><a href="{% url 'detail' book_id='3' %}">最火的一篇文章詳情</a></li>
3.如果要在使用url標(biāo)簽反轉(zhuǎn)的時(shí)候要傳遞查詢字符串的參數(shù),那么必須要手動(dòng)在后面添加,示例代碼如下:
{# 在模板中使用查詢字符串的形式添加參數(shù),此時(shí)就只能和reverse()函數(shù)一樣,只能手動(dòng)的添加,使url進(jìn)行拼接。 #} {# 實(shí)現(xiàn)登錄成功之后跳轉(zhuǎn)到首頁(yè) #} <li><a href="{% url 'login' %}?next=/">登錄</a></li>
4.如果要傳遞多個(gè)參數(shù),那么可以通過(guò)空格的方式進(jìn)行分割,示例代碼如下:
<li><a href="{% url 'detail' book_id='3' author='小螞蟻' %}">最火的一篇文章詳情</a></li>
以下是完整代碼實(shí)現(xiàn):
views.py代碼如下:
from django.http import HttpResponse from django.shortcuts import render def index(request): return render(request,'index.html') # 定義登錄視圖函數(shù) def login(request): next = request.GET.get('next') text = "登錄完成后,要跳轉(zhuǎn)的頁(yè)面是:%s" % next return HttpResponse(text) def book(request): return HttpResponse('圖書(shū)頁(yè)面') # 在進(jìn)行訪問(wèn)url的時(shí)候進(jìn)行傳遞參數(shù)視圖,直接傳入一個(gè)參數(shù) def book_detail(request,book_id,author): text = '您輸入的圖書(shū)id是:%s,作者是:%s' % (book_id,author) return HttpResponse(text) def movie(request): return HttpResponse('電影頁(yè)面') def city(request): return HttpResponse("同城頁(yè)面")
index.html代碼如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .nav { overflow: hidden; } .nav li { float: left; {# 將li標(biāo)簽前面的圓點(diǎn)去掉 #} list-style: none; {# 定義li標(biāo)簽之間的外邊距,上下為0,左右為20px #} margin: 0 20px; } </style> </head> <body> <ul class="nav"> <li><a href="/">首頁(yè)</a></li> {# 此時(shí)采用動(dòng)態(tài)獲取url的方式,使用url標(biāo)簽可以在DTL模板中動(dòng)態(tài)獲取url,#} {# 而使用reverse()函數(shù),可以在Django中動(dòng)態(tài)獲取url標(biāo)簽,將視圖函數(shù)進(jìn)行反轉(zhuǎn),得到url. #} <li><a href="{% url 'book' %}">讀書(shū)</a></li> <li><a href="{% url 'movie' %}">電影</a></li> <li><a href="{% url 'city' %}">同城</a></li> {# url反轉(zhuǎn),使用位置參數(shù),但是關(guān)鍵字參數(shù)和位置參數(shù)不能同時(shí)使用 #} {# <li><a href="{% url 'detal' 1 %}"></a></li>#} {# url反轉(zhuǎn),使用關(guān)鍵字參數(shù) #} {# 接收url中傳遞參數(shù),可以在url中直接傳遞參數(shù),并且指定參數(shù)的值,但是此時(shí)=兩邊不能有空格,否者的話,不能識(shí)別 #} <li><a href="{% url 'detail' book_id='3' author="小螞蟻" %}">最火的一篇文章詳情</a></li> {# 在模板中使用查詢字符串的形式添加參數(shù),此時(shí)就只能和reverse()函數(shù)一樣,只能手動(dòng)的添加,使url進(jìn)行拼接。 #} {# 實(shí)現(xiàn)登錄成功之后跳轉(zhuǎn)到首頁(yè) #} <li><a href="{% url 'login' %}?next=/">登錄</a></li> </ul> </body> </html>
視圖函數(shù)與url之間的映射:
urls.py代碼如下:
from django.urls import path from . import views urlpatterns = [ path('',views.index,name = 'index'), path('book/',views.book,name = 'book'), path('movie/',views.movie,name = 'movie'), path('city/',views.city,name = 'city'), path('book/detail/<book_id>/<author>/',views.book_detail,name = 'detail'), path('login/',views.login,name = 'login'), ]
瀏覽器中查看結(jié)果:
以上就是本次介紹的全部相關(guān)知識(shí)點(diǎn),感謝大家的學(xué)習(xí)和對(duì)腳本之家的支持。
- 如何通過(guò)Python實(shí)現(xiàn)標(biāo)簽云算法
- Python爬蟲(chóng)庫(kù)BeautifulSoup獲取對(duì)象(標(biāo)簽)名,屬性,內(nèi)容,注釋
- python matplotlib畫(huà)盒圖、子圖解決坐標(biāo)軸標(biāo)簽重疊的問(wèn)題
- Python autoescape標(biāo)簽用法解析
- Python with標(biāo)簽使用方法解析
- python實(shí)現(xiàn)的批量分析xml標(biāo)簽中各個(gè)類(lèi)別個(gè)數(shù)功能示例
- python3 BeautifulSoup模塊使用字典的方法抓取a標(biāo)簽內(nèi)的數(shù)據(jù)示例
- python matplotlib如何給圖中的點(diǎn)加標(biāo)簽
- 基于python3生成標(biāo)簽云代碼解析
相關(guān)文章
Python加載文件內(nèi)容的兩種實(shí)現(xiàn)方式
這篇文章主要介紹了Python加載文件內(nèi)容的兩種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09PyTorch如何利用parameters()獲取模型參數(shù)
這篇文章主要介紹了PyTorch如何利用parameters()獲取模型參數(shù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Windows 下python3.8環(huán)境安裝教程圖文詳解
這篇文章主要介紹了Windows 下python3.8環(huán)境安裝教程圖文詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03python實(shí)現(xiàn)守護(hù)進(jìn)程、守護(hù)線程、守護(hù)非守護(hù)并行
本篇文章主要介紹了python實(shí)現(xiàn)守護(hù)進(jìn)程、守護(hù)線程、守護(hù)非守護(hù)并行,詳細(xì)的介紹了守護(hù)子進(jìn)程、非守護(hù)子進(jìn)程并存,守護(hù)子線程非守護(hù)子進(jìn)程并存的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05python opencv旋轉(zhuǎn)圖像(保持圖像不被裁減)
這篇文章主要為大家詳細(xì)介紹了python opencv旋轉(zhuǎn)圖像,保持圖像不被裁減,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Python網(wǎng)絡(luò)編程之ftplib模塊
這篇文章介紹了Python網(wǎng)絡(luò)編程之ftplib模塊,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05opencv+playwright滑動(dòng)驗(yàn)證碼的實(shí)現(xiàn)
滑動(dòng)驗(yàn)證碼是常見(jiàn)的驗(yàn)證碼之一,本文主要介紹了opencv+playwright滑動(dòng)驗(yàn)證碼的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11Python實(shí)現(xiàn)從訂閱源下載圖片的方法
這篇文章主要介紹了Python實(shí)現(xiàn)從訂閱源下載圖片的方法,涉及Python采集的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03