一、返回简单类型:

1 #1、返回简单字符串
2 #from django.http import HttpResponse
3 return HttpResponse("return string")
4 #2、返回json
5 return HttpResponse(json.dumps(response_data),content_type="application/json")  

二、返回文件类型:

1 #1、返回一个页面
2 #from django.shortcuts import render
3 return render(request,"return.html")

三、返回模板类型:

1 #1、返回模板类型
2 return render(request,"return.html",{"string":"test ok"})

四、文件下载:

 1 #1、简单流文件下载
 2 return HttpRequest(fd.read())
 3 #相关字节控制:
 4 response = HttpResponse(data, content_type='application/zip')
 5 from urllib import parse
 6 response['Content-Disposition'] = 'attachment;filename=' +parse.quote(z_name)
 7 return response
 8 #2、复杂的大型流文件下载:
 9 def file_download(request):
10     def file_iterator(file_name, chunk_size=512):
11         with open(file_name) as f:
12             while True:
13                 c = f.read(chunk_size)
14                 if c:
15                     yield c
16                 else:
17                     break
18     the_file_name = "file_name.txt"
19     response = StreamingHttpResponse(file_iterator(the_file_name))
20     response['Content-Type'] = 'application/octet-stream'
21     response['Content-Disposition'] = 'attachment;filename="{0}"'.format(the_file_name)
22     return response

五、HttpResponse的更多用法:

1 #1
2 HttpResponse(xxx,content_type="xxx")
3 #2
4 response = HttpResponse()
5 response["age"] = 120 #响应数据部分
6 #3
7 """以文件形式处理响应数据部分"""
8 response = HttpResponse(my_data,content_type='application/vnd.ms-excel')
9 response['Content-Disposition'] = 'attachment; filename="foo.xls"'

六、HttpResponse的一些方法:

 1 HttpResponse.__init__(content='', content_type=None, status=200, reason=None, charset=None)
 2 #使用页面的内容(content)和content-type来实例化一个HttpResponse对象。
 3 #content 应该是一个迭代器或者字符串。如果它是一个迭代器,那么他应该返回的是一串字符串,并且这些字符串连接起来形成response的内容(content)。如果不是迭代器或者字符串,那么在其被接收的时候将转换成字符串。
 4 #content_type是可选地通过字符集编码完成的MIME类型,并且用于填充HTTP Content-Type头部。如果没有设定, 会从 DEFAULT_CONTENT_TYPE 和 DEFAULT_CHARSET 设定中提取, 作为默认值: “text/html; charset = utf-8“。
 5 #status 是 HTTP 响应状态码 。.
 6 #reason 是HTTP响应短语 如果没有指定, 则使用默认响应短语.
 7 #charset 在response中被编码的字符集。如果没有给定,将会从 content_type中提取, 如果提取不成功, 那么 DEFAULT_CHARSET 的设定将被使用.
 8 #HttpResponse.__setitem__(header, value)
 9 #由给定的首部名称和值设定相应的报文首部。 header 和 value 都应该是字符串类型。
10 #HttpResponse.__delitem__(header)
11 #根据给定的首部名称来删除报文中的首部。如果对应的首部不存在将沉默地(不引发异常)失败。不区分大小写。
12 #HttpResponse.__getitem__(header)
13 #根据首部名称返回其值。不区分大小写。
14 #HttpResponse.has_header(header)
15 #通过检查首部中是否有给定的首部名称(不区分大小写),来返回True 或 False 。
16 #HttpResponse.setdefault(header, value)
17 HttpResponse.write(content)
18 #此方法使HttpResponse实例是一#个类似文件的对象。
19 HttpResponse.flush()
20 #此方法使HttpResponse实例是一个类似文件的对象。
21 HttpResponse.tell()
22 此方法使HttpResponse实例是一个类似文件的对象。
23 #HttpResponse.getvalue()
24 #HttpResponse.writable()
25 #HttpResponse.writelines(lines)¶

六、响应中对session和cookie的控制:

HttpResponse.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False)#设置cookie

HttpResponse.set_signed_cookie(key, value, salt='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=True)
#与set_cookie() 类似,但是在设置之前将用密钥签名。通常与
HttpRequest.get_signed_cookie()
#一起使用。你可以使用可选的salt 参考来增加密钥强度,但需要记住将它传递给对应的HttpRequest.get_signed_cookie() 调用。

HttpResponse.delete_cookie(key, path='/', domain=None)

七、重定向:

1 #1
2 from django.http import HttpResponseRedirect
3 return HttpResponseRedirect("redirecturl")
4 #2
5 from django.core.urlresolvers import reverse
6 from django.shortcuts import redirect
7 return redirect(reverse('test.views.invoice_return_index', args=[]))

八、错误页

1 #views.py
2 from django.shortcuts import render,render_to_response
3 def page_not_found(request):
4     return render_to_response('404.html')
5 #settings.py
6 要加上下面哦
7 handler404 = app1.views.page_not_found #改动2

转载于:https://www.cnblogs.com/KevinGeorge/p/8332238.html

Django学习笔记第三篇--关于响应返回相关推荐

  1. RCNN学习笔记——第三篇: 实现FRCNN网络训练、评价与预测(附全部源码)

    RCNN学习笔记--第三篇: 实现FRCNN网络训练.评价与预测(附全部源码) 本文是个人根据B站大佬Bubbliiiing的FRCNN系列视频同步完成FRCNN训练,记录心得和遇见的问题. 关于RC ...

  2. Python 学习笔记 第三篇 Python实现网易云评论网页爬虫+词云展示 (Pycharm+Mysql)

    初始条件,具体可见我的其他文章. 1.安装Python.Python 学习笔记 第一篇 Python的安装与配置 2.安装Pycharm,并导入第三方包.Python 学习笔记 第二篇 Python ...

  3. 编程学习笔记(第三篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(3)软件开发的现状、UML扩展...

    一.软件开发的现状 软件领域正在发生一个巨变,特别是近几年来,软件领域正在发生翻天覆地的变化. 这一变化主要以这个云 + 端大数据, 这些是随着目前最先进的一些技术的产生而产生的. 随着这些新的技术以 ...

  4. win32汇编 屏幕截图保存BMP 学习笔记第三篇之odbg调试

    我们来回顾下raiky code 根据帖子里的讨论错误的疑点在于 1. 对每个像素所占字节的估算可能有误 wBitCount;位图中每个像素所占字节数 简单的赋值4 2. 涉及到后面的调色板的处理 我 ...

  5. MySQL 学习笔记-第三篇-索引、存储过程和函数、视图、触发器

    目录 1 索引 1.1 索引简介 1.2 创建索引 1.3 删除索引 1.4 MySQL 8.0 的新特性 1 -支持降序索引 1.5 MySQL 8.0 的新特性 2 -统计直方图 2 存储过程和函 ...

  6. 网络安全应急演练学习笔记第三篇之实施和总结阶段

    文章目录 0x06 应急演练实施 0x07 应急演练总结 摘抄 0x06 应急演练实施 0x07 应急演练总结 演练结束后,由演练策划组根据演练记录.演练评估报告.应急预案.现场总结等材料,对演练进行 ...

  7. 深度学习笔记(三)—— 反向传播[Back Propagation] 计算图[Computational Graph]

      这是深度学习笔记第三篇,完整的笔记目录可以点击这里查看.      反向传播就是求梯度值,然后通过梯度下降的方式对损失函数进行迭代优化的过程.在通常情况下,直接对一个复杂的函数一步到位写出其解析导 ...

  8. Cty的Linux学习笔记(三)

    Linux学习笔记--第三篇 (再次声明:该笔记只作为学习记录及参考) 概念: 相对路径:依赖于当前文件或目录的路径 绝对路径:依赖于根目录的路径 命令(command): cd:变更用户所在的目录, ...

  9. 千锋Django学习笔记

    千锋Django学习笔记 文章目录 千锋Django学习笔记 写在前面 1. MVC和MTV 2. Django简介 3. MTV简单流程 4. 和Model的简单对接 5. Model 6. Tem ...

最新文章

  1. javascript解析json
  2. 设计模式之装饰模式(Decorator)摘录
  3. oracle卸载注意啥,关于oracle的安装,卸载以及其他注意事项
  4. 27年前被Nature拒稿,如今斩获诺贝尔奖!学术投稿模式再引热议:都有神奇的评审2...
  5. ViewState与Session 的重要区别
  6. C/C++协程库libco:微信怎样漂亮地完成异步化改造
  7. PyQt、QtDesigner及其它工具包的安装
  8. 茫茫内存,我该如何用 windbg 找到你 ?
  9. Spring MVC Interceptor Handler InterceptorAdapter HandlerInterceptor示例
  10. BigInt:JavaScript 中的任意精度整数
  11. eemd优缺点_基于EEMD的信号处理方法分析和实现
  12. LINUX 下通过lsof恢复被误删除的文件
  13. Cause: java.sql.SQLException: Could not retrieve transation read-only status server
  14. python-opencv中的cv.CreateImage函数的参数问题
  15. mysql 执行顺序_MySQL 基础知识掌握
  16. php超小免杀大马_PHP免杀大马的奇淫技巧
  17. 车牌自动识别在智能交通系统中的应用及前景分析
  18. Smobiler图片二进制上传处理
  19. MATLAB图像处理之自动识别,并提取特征
  20. Luogu5339 [TJOI2019]唱、跳、rap和篮球 【生成函数,NTT】

热门文章

  1. expecting statement错误的一种情况(phpstorm 8.0.2)
  2. 普元部署包部署找不到构建_让我们在5分钟内构建和部署AutoML解决方案
  3. nlp自然语言处理_自然语言处理(NLP):不要重新发明轮子
  4. 缺失值的处理——R语言
  5. python亲和度_数据挖掘——亲和性分析
  6. jpa 自定义sql if_mybatis仿jpa 使用@createDate @updateDate
  7. 设备的dpr_湘潭污水处理设备_处理污水设备生产厂
  8. 前端将二进制数据流转为文件_前端通过二进制流下载文件
  9. LIBSVM在MATLAB中的使用及SVM最优参数选取示例代码
  10. poj3713 Transferring Sylla 枚举+tarjan判割点