Django学习系列之三:URL传递参数

Django学习系列之三:URL传递参数

(一)在URL中使用变量的方式
1.传递一个参数
如:views.py

#说明已经创建了名为book的APP
From django.http import HttpResponse
def book (request):
return HttpResponse('图书首页')
def book_detail (request,book_id): # book_id就是传递的参数
#可以从数据库中根据book_id提取这个图书的信息
return HttpResponse(text)

Urls.py

From book import Views   #这里的book是创建的APP名字
url = [
path('admin/',admin.site.urls),
path('book/',Views.book)    #此处的book为views.py中定义的函数
path('book/detail//',Views.book_detail)  
#一定要和views.py中的参数一样
path(‘’,index) #定义默认的首页面,可以在views.py中定义相应的函数  
 ] 

2.传递多个参数
如:views.py

#说明已经创建了名为book的APP
From django.http import HttpResponse
def book (request):
return HttpResponse('图书首页')
def book_detail (request,book_id,category_id): 
text = "您获取的图书id是 %s, 图书分类是%s" % (book_id,category_id)
return HttpResponse(text)

Urls.py

From book import Views   #这里的book是创建的APP名字
url = [
path('admin/',admin.site.urls),
path('book/',Views.book)    #此处的book为views.py中定义的函数
path('book/detail///',Views.book_detail)  
#这里的URL需要传递两个参数即:URL地址/参数1/参数2
#一定要和views.py中的参数一样
path(‘’,index) #定义默认的首页面,可以在views.py中定义相应的函数  
 ] 

(二)查询字符串方式
网址里面以?方式结尾的就是使用了get的请求!
如:
如:views.py

#说明已经创建了名为book的APP
From django.http import HttpResponse
def author_detail (request): #不需要写参数
author_id = request.GET.get('id') 
#和上面写法一样author_id = request.GET['id']
text = '作者的id是: %s' % author_id
return HttpResponse(text)

Urls.py

From book import Views   #这里的book是创建的APP名字
url = [
path('admin/',admin.site.urls),
path('book/author/',Views.author_detail)   
 ] 

你可能感兴趣的:(python+django)