Python中url標簽使用知識點總結(jié)
1.在模板中,我們經(jīng)常要使用一些url,實現(xiàn)頁面之間的跳轉(zhuǎn),比如某個a標簽中需要定義href屬性。當然如果通過硬編碼的方式直接將這個url固定在里面也是可以的,但是這樣的話,對于以后進行代碼的維護,可能就比較麻煩,因此建議使用這種動態(tài)的方式來實現(xiàn),類似于django中reverse一樣。示例代碼如下:
<li><a href="/">首頁</a></li>
{# 此時采用動態(tài)獲取url的方式,使用url標簽可以在DTL模板中動態(tài)獲取url,#}
{# 而使用reverse()函數(shù),可以在Django中動態(tài)獲取url標簽,將視圖函數(shù)進行反轉(zhuǎn),得到url. #}
<li><a href="{% url 'book' %}">讀書</a></li>
<li><a href="{% url 'movie' %}">電影</a></li>
<li><a href="{% url 'city' %}">同城</a></li>
2.如果url進行反轉(zhuǎn)的時候,需要傳遞參數(shù),那么就可以在后面?zhèn)鬟f,但是參數(shù)有位置參數(shù)和關鍵字參數(shù)。位置參數(shù)和關鍵字參數(shù)不能同時使用。示例代碼如下:
{# url反轉(zhuǎn),使用位置參數(shù),但是關鍵字參數(shù)和位置參數(shù)不能同時使用 #}
<li><a href="{% url 'detal' 1 %}"></a></li>
{# url反轉(zhuǎn),使用關鍵字參數(shù) #}
{# 接收url中傳遞參數(shù),可以在url中直接傳遞參數(shù),并且指定參數(shù)的值,但是此時=兩邊不能有空格,否者的話,不能識別 #}
<li><a href="{% url 'detail' book_id='3' %}">最火的一篇文章詳情</a></li>
3.如果要在使用url標簽反轉(zhuǎn)的時候要傳遞查詢字符串的參數(shù),那么必須要手動在后面添加,示例代碼如下:
{# 在模板中使用查詢字符串的形式添加參數(shù),此時就只能和reverse()函數(shù)一樣,只能手動的添加,使url進行拼接。 #}
{# 實現(xiàn)登錄成功之后跳轉(zhuǎn)到首頁 #}
<li><a href="{% url 'login' %}?next=/">登錄</a></li>
4.如果要傳遞多個參數(shù),那么可以通過空格的方式進行分割,示例代碼如下:
<li><a href="{% url 'detail' book_id='3' author='小螞蟻' %}">最火的一篇文章詳情</a></li>
以下是完整代碼實現(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)的頁面是:%s" % next
return HttpResponse(text)
def book(request):
return HttpResponse('圖書頁面')
# 在進行訪問url的時候進行傳遞參數(shù)視圖,直接傳入一個參數(shù)
def book_detail(request,book_id,author):
text = '您輸入的圖書id是:%s,作者是:%s' % (book_id,author)
return HttpResponse(text)
def movie(request):
return HttpResponse('電影頁面')
def city(request):
return HttpResponse("同城頁面")
index.html代碼如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.nav {
overflow: hidden;
}
.nav li {
float: left;
{# 將li標簽前面的圓點去掉 #}
list-style: none;
{# 定義li標簽之間的外邊距,上下為0,左右為20px #}
margin: 0 20px;
}
</style>
</head>
<body>
<ul class="nav">
<li><a href="/">首頁</a></li>
{# 此時采用動態(tài)獲取url的方式,使用url標簽可以在DTL模板中動態(tài)獲取url,#}
{# 而使用reverse()函數(shù),可以在Django中動態(tài)獲取url標簽,將視圖函數(shù)進行反轉(zhuǎn),得到url. #}
<li><a href="{% url 'book' %}">讀書</a></li>
<li><a href="{% url 'movie' %}">電影</a></li>
<li><a href="{% url 'city' %}">同城</a></li>
{# url反轉(zhuǎn),使用位置參數(shù),但是關鍵字參數(shù)和位置參數(shù)不能同時使用 #}
{# <li><a href="{% url 'detal' 1 %}"></a></li>#}
{# url反轉(zhuǎn),使用關鍵字參數(shù) #}
{# 接收url中傳遞參數(shù),可以在url中直接傳遞參數(shù),并且指定參數(shù)的值,但是此時=兩邊不能有空格,否者的話,不能識別 #}
<li><a href="{% url 'detail' book_id='3' author="小螞蟻" %}">最火的一篇文章詳情</a></li>
{# 在模板中使用查詢字符串的形式添加參數(shù),此時就只能和reverse()函數(shù)一樣,只能手動的添加,使url進行拼接。 #}
{# 實現(xiàn)登錄成功之后跳轉(zhuǎn)到首頁 #}
<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é)果:



以上就是本次介紹的全部相關知識點,感謝大家的學習和對腳本之家的支持。
相關文章
Python實現(xiàn)小數(shù)轉(zhuǎn)化為百分數(shù)的格式化輸出方法示例
這篇文章主要介紹了Python實現(xiàn)小數(shù)轉(zhuǎn)化為百分數(shù)的格式化輸出方法,結(jié)合具體實例形式分析了Python實現(xiàn)小數(shù)轉(zhuǎn)換為百分數(shù)輸出的相關操作技巧與注意事項,需要的朋友可以參考下2017-09-09
windows系統(tǒng)下Python環(huán)境搭建教程
這篇文章主要為大家詳細介紹了windows系統(tǒng)下Python環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
Python使用Selenium模塊實現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能示例
這篇文章主要介紹了Python使用Selenium模塊實現(xiàn)模擬瀏覽器抓取淘寶商品美食信息功能,涉及Python基于re模塊的正則匹配及selenium模塊的頁面抓取等相關操作技巧,需要的朋友可以參考下2018-07-07
python中字符串拼接的幾種方法及優(yōu)缺點對比詳解
在 Python 中,字符串拼接是常見的操作,Python 提供了多種方法來拼接字符串,每種方法有其優(yōu)缺點和適用場景,以下是幾種常見的字符串拼接方法,需要的朋友可以參考下2025-03-03
python實現(xiàn)將文件夾下面的不是以py文件結(jié)尾的文件都過濾掉的方法
今天小編就為大家分享一篇python實現(xiàn)將文件夾下面的不是以py文件結(jié)尾的文件都過濾掉的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
python使用循環(huán)實現(xiàn)批量創(chuàng)建文件夾示例
這篇文章主要介紹了python使用循環(huán)實現(xiàn)批量創(chuàng)建文件夾示例,需要的朋友可以參考下2014-03-03
Python的地形三維可視化Matplotlib和gdal使用實例
這篇文章主要介紹了Python的地形三維可視化Matplotlib和gdal使用實例,具有一定借鑒價值,需要的朋友可以了解下。2017-12-12

