HttpRequest对象
服务器接受到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模型中定义了HttpRequest对象的API
属性:
path:一个字符串,表示请求的页面的完整路径,不包含域名;
method:一个字符串,表示请求使用的HTTP方法,常用值包含:‘GET’,‘POST’;
encoding:一个字符串,表示提交的数据的编码方式;
如果为None则表示使用浏览器的默认设置,一般为utf-8;
这个属性是可写的,可以通过修改它来修改访问表单数据使用的编码,接下来对属性的任何访问将使用新的encoding值;
GET:一个类似于字典的对象,包含get请求方式的所有参数;
request.GET.get('username') # 获取一个
request.GET.getlist('hobby') # 获取多个
POST:一个类似于字典的对象,包含post请求方式的所有参数;
FILES:一个类似于字典的对象,包含所有的上传文件;
COOKIES:一个标准的python字典,包含所有的cookie,键和值都为字符串;
session:一个即可读又可写的类似于字典的对象,表示当前的会话,只有当django启用会话的支持时才可用,详细内容见“状态保持”;
方法:is_ajax():如果请求是通过XMLHttpRequest发起的,则返回True;
GET和POST请求
1. GET:
request.GET.get('username') # 获取一个
request.GET.getlist('hobby') # 获取多个
2. POST:
{% csrf_token %}
文件上传
HttpResponse对象
区别:HttpRequest对象是django自动创建,HttpResponse对象需要手动创建。
属性:
content:表示返回的内容,字符串类型;
charset:表示response采用的编码字符集,字符串类型;
status_code:响应的HTTP响应状态码;
content-type:制定输出的MIME类型
方法:
init:使用页内容实例化HttpResponse对象;
write(content):以文件的方式写;
flush():以文件的方式输出缓存区;
set_cookie(key, vlaue='', max_age=None, expires=None):设置Cookie,key,value都是字符串类型,max_age是一个整数,表示指定秒数后过期,
expires是一个datetime或timedelta对象,会话将在这个制定的日期/时间过期,注意datetime或timedelta值只有在使用PickleSerializer时才可序列化,
max_age与expires二选一;
delete_cookie(key):删除制定的key的Cookie,如果key不存在则什么也不发生。
HttpResponse的子类:
返回数据的响应函数有:
HttpResponse():返回简单的字符串对象;
render():渲染模板;
redirect():重定向,制定新的链接;
JsonResponse():返回json数据。
会话技术(之Cookie)
1. 客服端项服务器发送请求,服务器在http协议加上请求头,通过响应,传送并保存客户端,客服端再次访问时,就会自动带上这个cookie。
标签:HttpRequest,请求,GET,对象,0009,Django,响应,key,字符串 From: https://www.cnblogs.com/lxinghua/p/16873923.html