2020-06-17 Day3 Django回复request请求

Django回复request请求的三种方式,以及使用到的第三方库

HttpResponse

  • 返回一段byes类型的字符串。
return HttpRespense('登录成功')

HttpResponsemu模块里封装了转换类型,拼接协议版本、状态码、状态描述符...的函数,基本相当于执行了以下的代码。

conn.send(b'HTTP/1.1 200 OK\r\nContent-Type:text/html; charset=utf-8\r\n\r\n')
conn.send(send_data)

render

  • 返回一个静态html页面
return render(request, 'login.html')

基本相当于执行了下面一段代码

with open('login.html', 'rb') as f:
  ret = f.read()
 return ret
  • 返回一个动态的html页面
    读取html文件,然后传入字典类型的键值对参数。替换html中的key对应的值

html文件

{{error}}

py文件

error_msg = '用户名或者密码错误'
return render(request, 'login.html', {'error':error_msg})

render模块中封装了读取html文件和替换html页面中动态数据的函数。

rediect

重定向一个http连接。

return redirect('http://www.baidu.com')

百度这个页面并不是自定义服务器返回的,而是它让浏览器去访问的,相当于转接了一下。
原理图


キャプチャ.PNG

你可能感兴趣的:(2020-06-17 Day3 Django回复request请求)