服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpRequest对象的API
在HTML中,form表单的作用是收集标签中的内容,… 中间可以由访问者添加类似于文本,选择,或者一些控制模块等等.然后这些内容将会被送到服务端。
一个表单必须指定两样东西:
def get_test(request):
#print(dir(request))
#print(request.path) #json形式
if request.method == 'GET':
username = request.GET.getlist('username',123) #default 默认值
password = request.GET.get('password')
print(username)
print(password)
return render(request, 'boke/get_test.html')
elif request.method == 'POST':
# print(request.POST)
username = request.POST.get('username')
password = request.POST.get('password')
print(username)
print(password)
return HttpResponse(123)
else:
return HttpResponse("请求方式有误")
get_test.html中代码为
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>get_test测试</title>
</head>
<body>
<a href="/boke/get_test?username=qwe&username=abc&password=123456">嘿嘿嘿</a>
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
传送文件:<input type="file" name="file">
用户名: <input type="text" placeholder="请输入用户名" name="username"><br>
密码 <input type="password" name="password"><br>
<input type="submit" value="发布">
</form>
</body>
</html>
request对象的属性GET、POST都是QueryDict类型的对象
与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
def get_test(request):
#print(dir(request))
#print(request.path) #json形式
if request.method == 'GET':
username = request.GET.getlist('username',123) #default 默认值
password = request.GET.get('password')
print(username)
print(password)
return render(request, 'boke/get_test.html')
elif request.method == 'POST':
# print(request.POST)
username = request.POST.get('username')
password = request.POST.get('password')
print(username)
print(password)
return HttpResponse(123)
else:
return HttpResponse("请求方式有误")
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>get_test测试</title>
</head>
<body>
<a href="/boke/get_test?username=qwe&username=abc&password=123456">嘿嘿嘿</a>
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
传送文件:<input type="file" name="file">
用户名: <input type="text" placeholder="请输入用户名" name="username"><br>
密码 <input type="password" name="password"><br>
<input type="submit" value="发布">
</form>
</body>
</html>
1.post的提交方式不会在url中显示参数
2.可以通过request.POST.get方式来获取提交的数据
GET属性:
POST属性: