三板斧

HttpResponse,
返回字符串类型render, 
返回html页面,而且在返回给浏览器之前,可以给html文件传值redirect
重定向

总结:视图函数必须返回一个HttpResponse对象, 查看源代码能发现。

JsonResponse对象

json用途:

前后端过渡,实现跨语言传递数据。

普通方式返回json

    data = {"name": "小黑", "age": 18}data2 = [11, 22, 33, 44]import json# data_str = json.dumps(data2)  # 把data序列化成json格式的字符串# return HttpResponse(data_str)#ensure_ascii=False  不会自动转码data_str = json.dumps(data,ensure_asrue=False)  # 把data序列化成json格式的字符串return HttpResponse(data_str)

 JsonResponse

    from django.http import JsonResponse#默认是字典。列表序列化,需要设置参数safe=Falsereturn JsonResponse(data2, safe=False)#读源码,加参数。 **表示打散字典,然后分配=return JsonResponse(data, json_dumps_params={'ensure_asrue=False':False})

form表单上传文件,及后端处理

method="post" enctype="multipart/form-data"

<form action="/upload/" method="post" enctype="multipart/form-data"><input type="file" name="upload_file"><input type="submit" value="开始上传">
</form>
# 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值
filename = request.FILES["upload_file"].name#或者
file_obj=request.FILES.get('upload_file')
filename=file_obj.namewith open(filename, "wb") as f:# 从上传的文件对象中,一行一行读取for i in request.file_obj.chunks():# 写入本地文件f.write(i)

request 对象方法

request.method
request.POST
request.GET
request.FILESrequest.path #/app01/test/
#获取完整路径
request.get_full_path() #/app01/test/?filename=abcrequest.path_info #/app01/test/#原生浏览器发送过来的二进制数据。
request.body

FBV与CBV

CBV

能够根据请求方式不同,匹配到不同的方法执行。

from django.views import View
# CBV版 添加新的出版社
class AddPublisher(View):def get(self, request):print(request.path_info)print(request.body)print("=" * 120)return render(request, "add_publisher.html")def post(self, request):print(request.body)print("=" * 120)new_name = request.POST.get("publisher_name", None)if new_name:# 通过ORM去数据库里新建一条记录models.Publisher.objects.create(name=new_name)# 引导用户访问出版社列表页,查看是否添加成功  --> 跳转return redirect("/publisher_list/")else:error_msg = "出版社名字不能为空!"return render(request, "add_publisher.html", {"error": error_msg})
url(r'^add_publisher/', views.AddPublisher.as_view()),

Django06:视图层/上传文件/request 方法补充/FBV与CBV相关推荐

  1. jquery ajax java上传文件_jQuery Ajax方式上传文件的方法

    jQuery Ajax方式上传文件用到两个对象 第一个对象:FormData 第二个对象:XMLHttpRequest 目前新版的Firefox 与 Chrome 等支持HTML5的浏览器完美的支持这 ...

  2. jQuery引起的用layer弹出层上传文件不能获取文件名的解决(thinkphp5)

    一.问题 在用thinkphp5做到用layer弹出层上传文件过程中,一直不能成功.详细代码如下: HTML代码: <div id="importBox" v-show=&q ...

  3. php post 文件,PHP响应post请求上传文件的方法_php技巧

    本文实例讲述了PHP响应post请求上传文件的方法.分享给大家供大家参考,具体如下: function send_file($url, $post = '', $file = '') { $eol = ...

  4. sftp命令上传本地文件到服务器,使用sftp命令上传文件夹方法

    使用sftp命令上传文件夹方法 发布时间:2020-08-05 02:24:03 来源:ITPUB博客 阅读:138 作者:ouyida3 # 前言 sftp上传单个文件使用put,多个文件可使用mp ...

  5. 如何向天翼云服务器上传文件,天翼云储存上传文件的方法

    也许您总是担心电脑里的重要资料会因为电脑故障而意外丢失?也许您总是为了保存文件,用U盘拷贝的同时还发送一份邮件给自己?也许您总是苦恼于相片太多,手机内存空间不够用?立刻开始使用天翼云,一切将迎刃而解! ...

  6. xshell怎么往linux系统上传文件,xshell怎么连接linux xshell上传文件的方法

    匿名用户 1级 2016-04-29 回答 1.保证linux下ssh开启(默认开启) # netstat -tupln |grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* ...

  7. 利用PUT方式上传文件的方法研究

    虽然没有POST方法使用广泛,但是PUT方法却是向服务器上传文件最有效率的方法.POST上传文件时,我们通常需要将所有的信息组合成 multipart 传送过去,然后服务器再解码这些信息,解码过程则必 ...

  8. ASP.NET Core 3.1系列(7)——Controller接收前端上传文件的方法

    1.前言 前一篇博客主要介绍了在GET和POST模式下Controller接收参数的一系列方法,归根结底还是一些简单类型参数的传递和接收.当前端界面需要上传文件时,后台的Controller又应该如何 ...

  9. springboot调用python脚本_Springboot实现上传文件接口,使用python的requests进行组装报文上传文件的方法...

    记录瞬间 近段时间使用Springboot实现了文件的上传服务,但是在使用python的requests进行post上传时,总是报错. 比如: 1.Current request is not a m ...

最新文章

  1. Android开发四年以来的工作难点总结
  2. MySQL中interactive_timeout和wait_timeout的区别
  3. 算法:二进制中1的个数
  4. 在LINUX 下安装 Realtek 8110SC 千兆网卡驱动
  5. 在宽字节环境下获取EditBox中的CString转换为char[]
  6. 蓝桥杯国赛 皮亚诺曲线距离
  7. 报错:The type javax.servlet.http.HttpServletRequest cannot be resolved
  8. 2021零售行业营销自由白皮书
  9. 面试高级测试工程师修炼之接口测试平台开发
  10. IBM Lotus Domino V8.5 服务器管理入门手册
  11. PowerBuilder 五子棋
  12. 三七皂苷-壳聚糖(PNS-CSB)水凝胶/聚乙烯吡咯烷酮/pH敏感性羧甲基/壳聚糖水凝胶的制备
  13. 算法篇-union-find并查集
  14. Source Insight——C/C++代码阅读器
  15. Win10中启动或关闭Windows功能中没有SNMP服务的解决办法
  16. linux编译符号那些事儿
  17. 201771010137 赵栋《面向对象程序设计(java)》第十八周学习总结
  18. 利用百度人脸识别API,实现人脸登陆JavaWeb
  19. java面试题120题
  20. 广告传媒----数字营销解决方案

热门文章

  1. Asp.net中的HttpModule和HttpHandler的简单用法
  2. 如何判断当面的网页加载完成?
  3. 使用 Dapr 缩短软件开发周期,提高生产效率
  4. CSharp 如何OCR离线识别文本
  5. 号称迄今为止最快,.NET6带来了什么?
  6. 好端端的程序员,咋就成了新生代农民工!
  7. 【Redis】有序集合的交集与并集
  8. 翠香猕猴桃 和 薄皮核桃,快来下单
  9. 为自己而活,这很难吗?
  10. Kubernetes 的2020年“野望”