<li><a href="/">首頁</a></li> {# 此時採用動態獲取url的方式,使用url標籤能夠在DTL模板中動態獲取url,#} {# 而使用reverse()函數,能夠在Django中動態獲取url標籤,將視圖函數進行反轉,獲得url. #} <li><a href="{% url 'book' %}">讀書</a></li> <li><a href="{% url 'movie' %}">電影</a></li> <li><a href="{% url 'city' %}">同城</a></li>
{# url反轉,使用位置參數,可是關鍵字參數和位置參數不能同時使用 #} <li><a href="{% url 'detal' 1 %}"></a></li> {# url反轉,使用關鍵字參數 #} {# 接收url中傳遞參數,能夠在url中直接傳遞參數,而且指定參數的值,可是此時=兩邊不能有空格,否者的話,不能識別 #} <li><a href="{% url 'detail' book_id='3' %}">最火的一篇文章詳情</a></li>
{# 在模板中使用查詢字符串的形式添加參數,此時就只能和reverse()函數同樣,只能手動的添加,使url進行拼接。 #} {# 實現登陸成功以後跳轉到首頁 #} <li><a href="{% url 'login' %}?next=/">登陸</a></li>
<li><a href="{% url 'detail' book_id='3' author='小螞蟻' %}">最火的一篇文章詳情</a></li>
from django.http import HttpResponse from django.shortcuts import render def index(request): return render(request,'index.html') # 定義登陸視圖函數 def login(request): next = request.GET.get('next') text = "登陸完成後,要跳轉的頁面是:%s" % next return HttpResponse(text) def book(request): return HttpResponse('圖書頁面') # 在進行訪問url的時候進行傳遞參數視圖,直接傳入一個參數 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("同城頁面")
<!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> {# 此時採用動態獲取url的方式,使用url標籤能夠在DTL模板中動態獲取url,#} {# 而使用reverse()函數,能夠在Django中動態獲取url標籤,將視圖函數進行反轉,獲得url. #} <li><a href="{% url 'book' %}">讀書</a></li> <li><a href="{% url 'movie' %}">電影</a></li> <li><a href="{% url 'city' %}">同城</a></li> {# url反轉,使用位置參數,可是關鍵字參數和位置參數不能同時使用 #} {# <li><a href="{% url 'detal' 1 %}"></a></li>#} {# url反轉,使用關鍵字參數 #} {# 接收url中傳遞參數,能夠在url中直接傳遞參數,而且指定參數的值,可是此時=兩邊不能有空格,否者的話,不能識別 #} <li><a href="{% url 'detail' book_id='3' author="小螞蟻" %}">最火的一篇文章詳情</a></li> {# 在模板中使用查詢字符串的形式添加參數,此時就只能和reverse()函數同樣,只能手動的添加,使url進行拼接。 #} {# 實現登陸成功以後跳轉到首頁 #} <li><a href="{% url 'login' %}?next=/">登陸</a></li> </ul> </body> </html>
urls.py代碼以下:html
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'), ]