HttpResponse对象 ???????概述: ???????????作用:给浏览器返回数据 ???????????HttpRequest对象是由Django创建的,HttpResponse对象是由程序员创建 ???????用法: ???????????不用模板,直接返回数据 ???????????????语句示例:return HttpResponse("Sunck is a good man") ???????????调用模板 ???????????????使用render方法 ???????????????????原型:render(request, templateName[, context]) ???????????????????作用:结合数据和模板,返回一个完整的HTML页面 ???????????????????参数: ???????????????????????request:请求体对象 ???????????????????????templateName:模板路径 ???????????????????????context:传递给需要渲染在模板上的数据 ???????属性 ???????????content:表示返回内容 ???????????charset:编码格式 ???????????status_code:响应状态码 ???????????????200 ???????????????304 ???????????????404 ???????????????400 ???????????content-type:指定输出的MIME类型 ???????方法 ???????????init:使用页面内容实例化HttpResponse对象 ???????????write(content):以文件的形式写入 ???????????flush():以文件的形式输出缓冲区 ???????????set_cookie(key, value, maxAge=None, exprise=None) ???????????delete_cookie(key): ???????????????删除cookie ???????????????如果删除一个不存在的cookie,就当什么都没发生 ???????子类HttpResponseRedirect ???????????功能:重定向,服务器端的跳转 ???????????简写 ???????????????redirect(to) ???????????to推荐使用反向解析 ???????????示例: ???????????????from django.http import HttpResponseRedirect ???????????????from django.shortcuts import redirect ???????????????def redirect1(request): ???????????????????# return HttpResponseRedirect(‘/redirect2‘) ???????????????????return redirect(‘/redirect2‘) ???????????????def redirect2(request): ???????????????????return HttpResponse("我是重定向后的视图") ???????子类JsonResponse ???????????返回Json数据,一般用于异步请求 ???????????__init__(self.data) ???????????data 字典 ???????????注意:Content-type类型为application/json ???状态保持 ???????http协议是无状态的,每次请求都是一次新的请求,它不记得之前的请求。 ???????客户端与服务器的一次通信就是一次会话 ???????实现状态的保持,在客户端或服务端存储有关会话的数据 ???????存储的方式 ???????????cookie:所有数据存储在客户端,不要存储敏感的数据 ???????????session:所有的数据存储在服务端,在客户端用cookie存储session_id ???????状态保持的目的: ???????????在一段时间内跟踪请求者的状态,可以实现跨页面访问当前的请求者的数据 ???????注意:不同的请求者之间不会共享这个数据,与请求者一一对应 ???????启用session:project\project\settings.py ???????????INSTALLED_APPS ???‘django.contrib.sessions‘, ???????????MIDDLEWARE ???‘django.contrib.sessions.middleware.SessionMiddleware‘, ???????使用session ???????????启用session后,每个httpRequest对象都有一个session属性 ???????????get[key, default=None] ???根据键获取session值 ???????????clear() ???清空所有会话 ???????????flush() ???删除当前会话并删除会话的cookie ???????????示例: ???????????????# session ???????????????def main(request): ???????????????????# 取session ???????????????????username = request.session.get(‘name‘, ‘游客‘) ???????????????????print(username) ???????????????????return render(request, ‘myApp/main.html‘, {‘username‘: username}) ???????????????def login(request): ???????????????????return render(request, ‘myApp/login.html‘) ???????????????def showmain(request): ???????????????????print("*****************") ???????????????????username = request.POST.get(‘username‘) ???????????????????# 存储session ???????????????????request.session[‘name‘] = username ???????????????????return redirect(‘/main/‘) ???????????????from django.contrib.auth import logout ???????????????def quit(request): ???????????????????# 清除session ???????????????????logout(request) # 方法1,推荐 ???????????????????# request.session.clear() # 方法2 ???????????????????request.session.flush() # 方法3 ???????????????????return redirect(‘/main/‘) ???????设置session过期时间 ???????????set_expiry(value) ???????????request.session.set_expiry(10) ?设置为10秒后过期 ???????????如果不设置,2个星期后过期 ???????????value设置为0代表关闭浏览器时过期 ???????????value设置为None代表设置永不过期,不推荐
django HttpResponse对象
原文地址:https://www.cnblogs.com/superxuezhazha/p/10356766.html