4.4、Django - URL之URL传参给视图(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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[参数] 方式来获取 。

猜你喜欢

转载自blog.csdn.net/u012111465/article/details/84928852