8.请求与响应
2019-03-08 本文已影响0人
爱修仙的道友
总体架构
image.pngHttpRequest对象
属性
- path: 返回一个字符串,表示请求的页面的完整路径,不包含域名
- image.png
- method:返回一个字符串,表示请求使用的Http方法,常用值包括:'GET','POST'
- image.png
- encoding: 返回一个字符串,表示提交数据的编码方式
- 如果为None则表示使用浏览器默认设置,一般为utf-8,当然这个属性是可写的,可以通过修改它来访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值
- image.png
- GET:返回一个类似于字典的对象,包含get请求方式的所有参数
- image.png
- POST:返回一个类似于字典的对象,包含post请求方式的所有参数
- image.png
- FILES:返回一个类似于字典的对象,包含所有的上传文件
- image.png
- COOKIES:返回一个标准的Python字典,包含所有的cookie,键和值都为字符串
- image.png
- session:一个既可读又可写的类似于字典的对象,表示当前的会话,只有当Django启用会话的支持时才可使用
- image.png
方法:
- is_ajax():如果请求是通过XMLHttpRequest发起的(即ajax发起的)则返回True
- image.png
HttpResponse对象
属性
- content:表示返回的内容,字节类型
- charset:表示response采用的编码字符集,字符串类型
- status_code:响应的HTTP响应状态码
- content-type:指定输出的MIME类型
方法
- init:使用页内容实例化HttpResponse对象
- write(content):以文件的方式写
- flush:以文件的方式输出缓冲区
- set_cookie(key,value='', max_age=None,expires=None):
设置Cookie key、value都是字符串类型,max_age是一个整数,指定过期时间,expires是一个datetime或timedelta对象,会话将在这个指定的日期/时间过期,注意datetime或timedelta的值只有再使用PickleSerializer时才可序列化,所以 max_age,expires 二选一,如果不指定过期时间,则关闭浏览器就失效
delete_cookie(key):删除指定key的cookie,如果没有,则什么也不发生
返回数据的响应函数有:
- HttpResponse() 返回简单的字符串对象
- render() 渲染模板
- redirect() 重定向
- JsonResponse() 返回json数据
- 帮助用户创建JSON编码的响应
- 参数data是字典对象
- JsonResponse的默认Content-Type为application/json
return JsonResponse({'age':18})