1. 请求
- 获取请求方式 GET/POST
print(requset.method)
- 通过url传递值 /something?n1=1234&n2=456
print(requset.GET)
- 通过请求体获取数据
print(requset.POST)
【注】:获取的请求方式和传递的值和数据,可在终端后台看见
2. 响应
- HttpResponse("返回内容") 将字符串返回给请求者
return HttpResponse("返回内容")
- 读取html中的内容 + 渲染(替换) -> 字符串,返回给用户浏览器
return render(requset,'something.html', {"title":"在吗?"})
- 让浏览器重定向到其他页面
return redirect("www.baidu.com")
【注】:重定向并不是网站获取其他网页再交付浏览器;而是网站返回其他网页的值给浏览器,让浏览器自行访问其他网页。
3. 案例
-
配置urls与views视图函数
-
视图函数中加入判断
login视图函数
def login(request):if request.method == "GET":return render(request, "login.html")else:# 如果是POST请求,获取用户提交的数据# print(request.POST)username = request.POST.get("user")password = request.POST.get("pwd")if username == 'root' and password == "123":# return HttpResponse("登录成功")return redirect("https://www.baidu.com/");else:# return HttpResponse("登录失败")return render(request, "login.html", {"error_msg":"用户名或密码错误!"})
-
编写login网页模板
网页模板
<h1>用户登录</h1><form method="post" action="/login/">{% csrf_token %}<input type="text" name="user" placeholder="用户名"><input type="password" name="pwd" placeholder="密码"><input type="submit" value="提交"><span style="color:red;">{{ error_msg }}</span></form>
【注】:表单中需加入
{% csrf_token %}
,否则会报403。 -
输入用户名和密码之后,点击提交,页面跳转,显示登录成功,后台终端将显示该用户名和密码。
【注】:['n32CliuoMhXYmhWutNtW7TrfY3NOCBeTzxJCyLJcDhqiXuX7oU23y8kzUBlcTSK3']
为Django提供的加密。 -
在视图函数判断中加入一个字典,该字典值为“用户名或密码错误!”,仅在用户名或者密码输入错误时显示,并在网页模版中调用该字典的键。