6.1 GET请求
一般用于向服务器获取数据,也可以向服务器传输少量数据
(path转换器传参) (查询字符串传参)
传参方式:
path转换器传参 (服务器-->)
path('page/<int:num>', views.pagen)
def pagen(request, num)
pass
查询字符串传参 (-->服务器)
127.0.0.1:8000/page?a=10&b=20&a=30
# 服务器拿数据
def test_get(request):
num = request.GET['b'] # 空值会报错 20
num = request.GET.get('a', '默认值') # 只拿第一个 10
num = request.GET.getlist('a') # 拿完 ['10', '30']
能够产生GET请求的场景:
1. 浏览器地址栏中输入URL,回车后
2. `<a href="地址?参数=值&参数=值">`
3. form表单中的method为get
6.2 POST请求
一般用于向服务器传输大量数据,通过form表单提交
<form method='POST' action="/目标路由名称">
姓名:<input type="text" name="username">
...
<input type='submit' value='提交'>
</form>
传参方式: form表单提交(-->服务器)
# 服务器拿数据
def test_get(request):
uname = request.POST['username']
uname = request.POST.get('username')
uname = request.POST.getlist('username')
form标签内的这三个标签的name属性和值,会以键值对形式提交给action:
<input name='xxx'>
<select name='yyy'></select>
<textarea name='zzz'></textarea>
注意: 向服务器传输数据的时候,
GET请求,表单数据以查询字符串的方式放到地址栏中. [数据裸奔]
POST请求,表单数据放在请求体中. [相对安全]