1、采用在URL中使用变量的方式:
在path的第一个参数中,使用“<参数名>”的方式可以传递参数。
然后在视图函数中也要写一个参数,视图函数中的参数必须和url中的参数名称保持一致,不然就找不到参数。
另外url中可以传递多个参数
views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("首页")
def book_id(request,book_id):
text="您获取的图书id是:%s"%book_id
return HttpResponse(text)
urls.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index),
path('book/',views.index),
path('book/bookid/<book_id>',views.book_id),
]
运行结果:
2、采用查询字符串的方式:
在url中,不需要单独的匹配查询字符串的部分。只需要在视图函数中使用“request.Get.get(‘参数名称’)”的方式进行获取
因为查询字符串使用的是Get请求,所以我们通过request.Get来获取参数,并且因为Get是一个类似于字典的数据类型,
所以获取值跟字典的方式都是一样的。
urls.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index),
path('book/',views.index),
path('book/bookid/<book_id>',views.book_id),
path('book/bookname/',views.book_name)
]
views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("首页")
def book_id(request,book_id):
text="您获取的图书id是:%s"%book_id
return HttpResponse(text)
def book_name(request):
book_name=request.GET.get("name")
text="您获取的图书名称是:%s"%book_name
return HttpResponse(text)
运行结果: