GET属性
- 请求格式:在请求地址结尾使用?,之后以“键=值”的格式拼接,多个键值对之间以&连接
- 例:网址如下
http://www.itcast.cn/?a=10&b=20&c=python
a=10&b=20&c=python
- 分析请求参数,键为'a'、'b'、'c',值为'10'、'20'、'python'
- 在Django中可以使用HttpRequest对象的GET属性获得get方式请求的参数
- GET属性返回QueryDict类型的对象,键和值都是字符串类型
- 键是开发人员在编写代码时确定下来的
- 值是根据数据生成的
示例
- 打开booktest/views.py文件,创建视图get1、get2、get3
# 创建链接
def get1(request):
return render(request,'booktest/get1.html')
# 接收一键一值
def get2(request):
return render(request,'booktest/get2.html')
# 接收一键多值
def get3(request):
return render(request,'booktest/get3.html')
- 打开booktest/urls.py文件,配置url
url(r'^get1/$',views.get1),
url(r'^get2/$',views.get2),
url(r'^get3/$',views.get3),
- 在templates/booktest目录下创建get1.html,代码如下
<html>
<head>
<title>GET属性</title>
</head>
<body>
链接1:一个键传递一个值<br>
<a href="/get2/?a=1&b=2">get2</a>
<hr>
链接2:一个键传递多个值<br>
<a href="/get3/?a=1&a=2&b=3">get3</a>
</body>
</html>
http://127.0.0.1:8000/get1/
# 接收一键一值
def get2(request):
dict=request.GET
a=dict.get('a')
b=dict.get('b')
c=dict.get('c','1')
context={'a':a,'b':b,'c':c}
return render(request,'booktest/get2.html',context)
- 在templates/booktest目录下创建get2.html,代码如下
<html>
<head>
<title>GET属性一键一值</title>
</head>
<body>
a:{{a}}
<hr>
b:{{b}}
<hr>
c:{{c}}
</body>
</html>
# 接收一键多值
def get3(request):
dict=request.GET
a=dict.getlist('a')
b=dict.get('b')
context={'a':a,'b':b}
return render(request,'booktest/get3.html',context)
- 在templates/booktest目录下创建get3.html,代码如下
<html>
<head>
<title>GET属性一键多值</title>
</head>
<body>
a:
<ul>
{%for i in a%}
<li>{{i}}</li>
{%endfor%}
</ul>
<hr>
b:{{b}}
</body>
</html>
- 后退到get1页面,点击链接get3,浏览效果如下图