小白jiang个人博客小白jiang个人博客小白jiang个人博客

(3)django中url传递参数

django中url传递参数有两种方法

1、使用变量传递参数:

book应用下的urls.py

from django.http import HttpResponse
from book import views


def index(request):
    return HttpResponse('ok')

urlpatterns = [
    path('',views.book),
    path('detail/<book_id>/<int:category_id>/', views.book_detail),
    path('list/',views.book_list),
]

book应用下的views.py

from django.http import HttpResponse

def book(request):
    return HttpResponse('book')


def book_detail(request, book_id,category_id):
    return HttpResponse('url中传入的参数是: %s, 图书分类是%s' % (book_id,category_id))

然后在cmd中启动项目 

python manage.py runserver

打开浏览器输入:

http://127.0.0.1:8000/book/detail/2/3/

浏览器显示

url中传入的参数是: 2, 图书分类是3

2、使用查询字符串传递参数:

因为查询字符串使用的是GET请求,所以我们通过request.GET来获取参数

urls.py中映射路由

path('book/author/',views.author_detail),

views.py文件中,定义函数

def author_detail(request):
    # author_id = request.GET.get('id')
    author_id = request.GET['id']
    text = '作者的id是:%s' % author_id
    return HttpResponse(text)

然后启动项目,浏览器中输入

http://127.0.0.1:8000/book/author/?id=100


未经允许不得转载:小白jiang个人博客 » (3)django中url传递参数