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

HttpResponse对象相关推荐

  1. Django视图之HttpRequest对象和HttpResponse对象

    五.HttpRequest对象 回想一下,利用HTTP协议向服务器传参有几种途径? 提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取: 查询字 ...

  2. 106:HttpResponse对象讲解

    HttpResponse对象 Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个HttpRequest对象传给视图函数.那么视图函数在处理完相关的逻辑后,也需要返回一个响 ...

  3. 【django】HttpResponse对象

    视图在接收请求并处理后,必须返回HttpResponse对象或⼦对象.HttpRequest对象由Django创建,HttpResponse对象由开发⼈员创建. 一.HttpResponse 可以使⽤ ...

  4. django请求与响应(HttpRequest对象和HttpResponse对象)

    HttpRequest对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpReq ...

  5. Django从理论到实战(part43)--HttpResponse对象

    学习笔记,仅供参考,有错必纠 参考自:Django打造大型企业官网–Huang Y: 文章目录 HttpResponse对象 常用属性 常用方法 HttpResponse对象 Django服务器接收到 ...

  6. Django框架——HttpResponse对象

    目录 1.HttpResponse 2.JsonResponse 3.redirect重定向 4.reverse反解析 1.HttpResponse 可通过HttpResponse构造响应对象: Ht ...

  7. django jsonresponse_0基础掌握Django框架(29)HttpResponse对象

    为了更好的学习效果,请搭配视频教程一起学习: Django零基础到项目实战 - 网易云课堂​study.163.com HttpResponse对象 Django服务器接收到客户端发送过来的请求后,会 ...

  8. python中response对象的属性_关于python:AttributeError:’HTTPResponse’对象没有属性’split’...

    我正在尝试从Google财经获取一些信息,但出现此错误 AttributeError: 'HTTPResponse' object has no attribute 'split' 这是我的pytho ...

  9. python中response对象的方法_django HttpResponse对象 - 刘江的django教程

    HttpResponse对象 阅读: 32804 评论:3 HttpResponse类定义在django.http模块中. HttpRequest对象是浏览器发送过来的请求数据的封装,HttpResp ...

最新文章

  1. 两大顶级AI算法一起开源!Nature、Science齐发Alphafold2相关重磅,双厨狂喜~
  2. LeetCode 105 Construct Binary Tree from Preorder and Inorder Traversal-前序中序遍历构造二叉树-Python和Java递归解法
  3. 使用java poi解析表格
  4. repeater用法一步一步详讲,用来绑定和显示数据信息
  5. 前端学习(1905)vue之电商管理系统电商系统之根据用户id查询对应的信息
  6. win7蓝屏0x000000f4修复_注意:关于近期多数电脑蓝屏的处理和预防方法
  7. php乱码调试,NotePad++ 调试PHP代码中文显示乱码
  8. 智能驾驶系统是怎样看懂交通标志的?3张流程图给你讲明白
  9. 安卓应用市场分类排名算法一般是怎样的?
  10. 嵌套高度问题_excel查找技巧:嵌套函数在区间查找中的应用解析
  11. 为什么会有这么多种程序设计语言?
  12. Visual Entity 手册(一)简介
  13. 通过触发绑定切换下拉框的数据
  14. tcp网络示例客户端端以及代码,演示
  15. 10 JavaScript函数
  16. 学习c++ 必知三大特性
  17. 解读Tilera怪兽级64核处理器(转)
  18. 文字转语音合成器哪个好?这些文字转语音软件值得收藏
  19. xquery_使用XQuery查询DB2 XML数据
  20. MongoDB单机集群搭建

热门文章

  1. Xcode 9.0 beta 3 GPUImage崩溃问题(presentBufferForDisplay)
  2. linux make使用技巧
  3. 【云快讯】之五十五《IBM推出Data Warehouse数据仓库云服务》
  4. teched2006会议资料
  5. 面试:MySQL InnoDB 事务隔离
  6. NGINX和NGINX Plus的速率限制
  7. python搭建博客系统_基于python3.7和django2.1的多人博客系统
  8. linux服务器 top 查看 内存占用详情
  9. 判断两个数组有相同的数据
  10. 【Python】Python库之网络爬虫