4.4、Django - URL之URL傳參給檢視(二)
阿新 • • 發佈:2018-12-14
上篇介紹了通過URL傳參給檢視,下面繼續說一下URL傳參給檢視的另外一種方式(查詢字串的形式),即GET
請求方法 。
在douAPI專案APP為douBook的views.py中:
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
# def book_info(request):
# return HttpResponse("圖書詳情")
# def book_info_detail(request,book_id):
# # 從資料庫中拿book_id,省略
# your_book_id = 'your book id is :{book_id}'.format(book_id = book_id)
# return HttpResponse(your_book_id)
# 注意book_author_detail函式與book_info_detail(request,book_id)的區別,前者的除了request引數寫在括號內,其餘不寫,在函式體內部體現
def book_author_detail(request):
# 從資料庫中拿id
author_id = request.GET.get('id') # 或者author_id = request.GET['id']
content = "Author's id of the book is : {input_id}".format(input_id = author_id)
return HttpResponse(content)
在douAPI專案下的urls.py中:
from django.urls import path
from douBook import views
urlpatterns = [
# path('douBook/', views.book_info),
# # 注意:引數<book_id>必須與APP為douBook下的views.py中book_info_detail函式的引數book_id保持一致!!!
# path('douBook/<book_id>/', views.book_info_detail),
# 注意:通過查詢字串的形式傳參,即GET請求方法,不需要加<>,author_id部分也可以隨意寫,比如寫成Auth_id
path('douBook/author/', views.book_author_detail),
]
結果如下:
總結:
1、採用查詢字串方式,在url中,不需要單獨匹配查詢字串的部分,只需在檢視函式中使用request.GET.get(引數)
或者 request.GET[引數]
方式來獲取 。