请求和响应
def something(request):
# request是一个对象,封装了用户发送过来的所有请求相关数据
- 1. [请求]获取请求方式 GET/POST
print(request.method)
- 2. [请求]在url传递值
print(request.GET)
- 3. [请求]在请求体中提交数据
print(request.POST)
- 4. [响应]HttpResponse() 内容字符串内容返回给请求者
return HttpResponse("返回内容")
- 5. [响应]读取html的内容 + 渲染(替换)->字符串,返回给用户浏览器
return render(request, "something.html", {"title": "来了"})
- 6. [响应]让浏览器重定向到别的页面
return redirect("https://www.baidu.com")
关于重定向:
- 浏览器发起请求,返回给浏览器,你自己访问去吧,然后浏览器自己访问重定向网站
案例
案例: 用户登陆
url绑定->视图函数:创建登陆函数
判断请求方式,get返回html页面
post获取请求体内容,进行判断
视图函数:
def login(request):
if request.method == "GET":
return render(request, "login.html")
# 如果是POST请求,获取用户提交的数据
username = request.POST.get("user")
password = request.POST.get("pwd")
if username == "root" and password == "123":
return redirect("https://www.baidu.com")
return render(request, "login.html",{"error_msg":"用户名或密码错误"})
html页面: form表单一定要写{% csrf_token %},否则认证不通过,跳转页面会失败
<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>