版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012111465/article/details/84928852
上篇介绍了通过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[参数]
方式来获取 。