Django学习笔记002——URL传递参数

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)

运行结果:

猜你喜欢

转载自blog.csdn.net/yaoliuwei1426/article/details/82051398