Django的请求与响应
1、常见的请求
2、常见的响应
- HttpResponse:将内容字符串返回给请求者
return HttpResponse("返回内容")
- render:读取HTML的内容,渲染(替换)后,将字符串返回给用户浏览器
return render(request, 'something.html', {"title": "来了"})
- redirect:重定向,让浏览器重定向到其他页面。浏览器向某个网站发起请求,网站会告诉浏览器某个网址,然后让浏览器自己去访问,去向那个网站再次发起请求。
return redirect("https://www.baidu.com/")
3、案例
- 在urls.py写出路径、函数的映射关系
path("login/", views.login),
- 在views.py中写login函数
def login(request):
# 如果请求类型是POST,就输出请求数据
if request.method == "POST":
print(request.POST)
return HttpResponse('登录成功')
# 如果请求类型是GET,就访问login页面
else:
return render(request,"login.html")
- 在login.html写前端页面,当表单数据提交后,会向/login/地址发起post请求,从而会再次访问login函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户登录页面</title>
</head>
<body>
<h1>用户登录</h1>
<form method="post" action="/login/">
<input type="text" name="user" placeholder="用户名">
<input type="password" name="password" placeholder="密码">
<input type="submit" placeholder="提交">
</form>
</body>
</html>
- 运行,在登录页面填写信息点击提交后,会出现下述错误
- 出现上述错误的原因是Django有csrf token的验证,即一层安全机制的校验,解决办法是在表单里面写一行代码:
{% csrf_token %}