HttpResponse对象

  • 在django.http模块中定义了HttpResponse对象的API
  • HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建
  • 不调用模板,直接返回数据
#coding=utf-8
from django.http import HttpResponsedef index(request):return HttpResponse('你好')
  • 调用模板
from django.http import HttpResponse
from django.template import RequestContext, loaderdef index(request):t1 = loader.get_template('polls/index.html')context = RequestContext(request, {'h1': 'hello'})return HttpResponse(t1.render(context))

属性

  • 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二选一
    • 如果不指定过期时间,则两个星期后过期
from django.http import HttpResponse
from datetime import *def index(request):response = HttpResponse()if request.COOKIES.has_key('h1'):response.write('<h1>' + request.COOKIES['h1'] + '</h1>')response.set_cookie('h1', '你好', 120)# response.set_cookie('h1', '你好', None, datetime(2016, 10, 31))return response
  • delete_cookie(key):删除指定的key的Cookie,如果key不存在则什么也不发生

子类HttpResponseRedirect

  • 重定向,服务器端跳转
  • 构造函数的第一个参数用来指定重定向的地址
在views1.py中
from django.http import HttpResponse,HttpResponseRedirect
def index(request):return HttpResponseRedirect('js/')
def index2(request,id):return HttpResponse(id)在应用的urls.py中增加一个url对象
url(r'^([0-9]+)/$', views1.index2, name='index2'),
  • 请求地址栏如图:

  • 请求结果的地址栏如图:

  • 推荐使用反向解析
from django.core.urlresolvers import reversedef index(request):return HttpResponseRedirect(reverse('booktest:index2', args=(1,)))

子类JsonResponse

  • 返回json数据,一般用于异步请求
  • _init _(data)
  • 帮助用户创建JSON编码的响应
  • 参数data是字典对象
  • JsonResponse的默认Content-Type为application/json
from django.http import JsonResponsedef index2(requeset):return JsonResponse({'list': 'abc'})

简写函数

render

  • render(request, template_name[, context])
  • 结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的HttpResponse对象
  • request:该request用于生成response
  • template_name:要使用的模板的完整名称
  • context:添加到模板上下文的一个字典,视图将在渲染模板之前调用它
from django.shortcuts import renderdef index(request):return render(request, 'booktest/index.html', {'h1': 'hello'})

重定向

  • redirect(to)
  • 为传递进来的参数返回HttpResponseRedirect
  • to推荐使用反向解析
from django.shortcuts import redirect
from django.core.urlresolvers import reversedef index(request):return redirect(reverse('booktest:index2'))

得到对象或返回404

  • get_object_or_404(klass, args, *kwargs)
  • 通过模型管理器或查询集调用get()方法,如果没找到对象,不引发模型的DoesNotExist异常,而是引发Http404异常
  • klass:获取对象的模型类、Manager对象或QuerySet对象
  • **kwargs:查询的参数,格式应该可以被get()和filter()接受
  • 如果找到多个对象将引发MultipleObjectsReturned异常
from django.shortcuts import *def detail(request, id):try:book = get_object_or_404(BookInfo, pk=id)except BookInfo.MultipleObjectsReturned:book = Nonereturn render(request, 'booktest/detail.html', {'book': book})将settings.py中的DEBUG改为False
将请求地址输入2和100查看效果

得到列表或返回404

  • get_list_or_404(klass, args, *kwargs)
  • klass:获取列表的一个Model、Manager或QuerySet实例
  • **kwargs:查寻的参数,格式应该可以被get()和filter()接受
from django.shortcuts import *def index(request):# list = get_list_or_404(BookInfo, pk__lt=1)list = get_list_or_404(BookInfo, pk__lt=6)return render(request, 'booktest/index.html', {'list': list})将settings.py中的DEBUG改为False

Django Response对象3.4相关推荐

  1. django返回对象Response

    django返回对象Response 参考:https://www.cnblogs.com/huwei934/p/6978641.html 一.不调用模板 不使用模板,直接返回数据,如: def te ...

  2. rest_framework07:权限/频率/过滤组件/排序/异常处理封装Response对象

    权限 写一个类,继承BasePermission,如果通过返回True,否则False 这里需要配合认证使用,否则没有user_type属性. from rest_framework.permissi ...

  3. request 对象和 response 对象

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...

  4. SpringMvc4中获取request、response对象的方法

    springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...

  5. java response 对象_82 Java基础 Response对象

    1 Response对象概述 负责对浏览器进⾏响应的对象 什么是响应: 服务器接收到请求需要进行处理,将处理以后的结果显示回浏览器端(将这个过程称为是响应Response). 查看Servlet中的s ...

  6. javaweb学习总结二十五(response对象的用法一)

    一:Reponse对象的概念 当客户端发送http请求时,服务器端会对每一次请求,创建request对象和response对象. response对象包括三个部分:响应头.响应状态码以及响应体 二:r ...

  7. ASP.NET 2.0编程技巧之用Response对象输出图像

    一. 简介 作为ASP.NET基本对象之一的Response对象不但可以通过Write()方法直接在页面上输出字符串数据,而且还可以使用BinaryWrite()方法直接显示二进制表示的数据,如图像. ...

  8. ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法

    导读:在ASP.NET的学习中,初步认识了其6大对象(严格说来只能算是属性):Request,Response,Application,Session,Server,OjectContext.这些对象 ...

  9. jsp response对象

    所属接口:javax.servlet.http.HttpServletResponse,其父接口是ServletResponse,而且ServletResponse也现在只有唯一一个HttpServl ...

最新文章

  1. Leangoo Talk第一期——Scrum与OKR融合实践
  2. Deepin中设置文件或文件夹权限
  3. 设计模式C++实现——组合模式
  4. 吴恩达机器学习笔记11-梯度下降法实践2-学习率
  5. [vue] 说说你对provide和inject的理解
  6. 如何在 Web 发布规则中使用证书进行 SSL 身份验证
  7. 前向传播算法和反向传播算法
  8. springboot做网站_SpringBoot项目实战(3):整合Freemark模板
  9. 【操作系统/OS笔记06】虚拟内存、覆盖、交换
  10. OpenStack版本发布周期或将延长为1年
  11. 牛客 动物森友会(最大流+二分)
  12. vue中数组按照下标移除其中一个_JDK 中的栈竟然是这样实现的?
  13. 中国移动边缘计算技术体系与实践
  14. 无关业务:少年得到,产品创新工作坊的复盘
  15. html火焰字效果,如何用PS制作火焰字特效
  16. ZYNQ SDK开发调试踩坑指南
  17. crunch的使用方法
  18. Linux:《gzip》《bzip2》压缩解压
  19. 【Auto.js】给手机编一个模拟遥控器
  20. MySQL基础命令及练习题(一)

热门文章

  1. 机器都会学习了,你的神经网络还跑不动?来看看这些建议
  2. glove 安装错误
  3. javaSE8的流库总结
  4. LeetCode简单题之检查是否所有字符出现次数相同
  5. LeetCode简单题之好对数的数目
  6. LeetCode简单题之七进制数
  7. Apache POI:解决数据库和Excel之间相互转换的烦恼~
  8. 什么是L1/L2/L3 Cache?
  9. 数据、人工智能和传感器按COVID-19新冠流感排列
  10. GPU加速:宽深度推理