Django获取多个数据及文件上传
1. 选择性别:
1)更新login.html模板
2)views.py中获取客户端提交的数据

3)当选择性别为“男”后,后台得到了gender=1.

2.选择爱好,可以多选,所以后台会获得多个数据。
radio单个数据的获取方法: v1=request.POST.get('gender')
checkbox多个数据的获取方法: v2=request.POST.getlist('favor')
1)更新login.html模板

2)views.py中获取客户端提交的数据

3)当选择爱好为“篮球,读书”后,后台得到了favor=11,22两个值。

3. select标签,默认是单选,也可以多选。不同的方法对应不同的获取函数

4. 上传文件
4.1 发现用get的方法只获取到了文件名,却不见文件的内容。其实文件内容没有放到POST里面,而是放到了FILES里面。
本质:上传的时候,所有的内容都上传到了FILES里面了,request.POST.get 只是到FILES里面把文件名取出来了,而没有提取文件内容。

4.2
在form表单中上传的有两类数据,
一类是普通数据(字符串),所有数据将在POST里面得到。
一类是文件,form表单中要加上:enctype="multipart/form-data", 表示上传的是文件。所有数据将在FILES中得到。


拿到的是类的对象,看起来像是个文件名,可以打印一下它的数据类型。

4.3 拿到文件后保存在服务器上,完成上传的功能。服务器端取数据的时候是分块取的,chunks(中文:块)就是一块一块的集合。
上传文件是一点一点上传的,取数据也是一点一点取的。f=open(obj.name,mode='wb'), 打开一个与上传文件同名的文件,把上传的文件写入进来。
修改views.py程序如下:

运行结果,上传成功。

4.4 把上传的文件都放到upload文件夹里面。
新建1个upload文件夹

插播一下os.path.join的 用法
os.path模块主要用于文件的属性获取,
os.path模块主要用于文件的属性获取. os.path.join(path1[, path2[, ...]])
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。 >>> os.path.join('c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c')
'/home/aa/bb/c'
修改views.py


运行结果,上传成功,并且上传到了指定的upload路径下面
客户端发送请求到服务器端,内容包含请求头,请求尾,请求的内容。
表单是表单,文件是文件。表单的数据全部提取到POST里面,文件的内容会全部提取到FILES里面,所以调用的时候会分开。
Django获取多个数据及文件上传的更多相关文章
- 【ASP.NET Web API教程】5.3 发送HTML表单数据:文件上传与多部分MIME
原文:[ASP.NET Web API教程]5.3 发送HTML表单数据:文件上传与多部分MIME 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面 ...
- SpringMVC(三)-- 视图和视图解析器、数据格式化标签、数据类型转换、SpringMVC处理JSON数据、文件上传
1.视图和视图解析器 请求处理方法执行完成后,最终返回一个 ModelAndView 对象 对于那些返回 String,View 或 ModeMap 等类型的处理方法,SpringMVC 也会在内部将 ...
- 01- ajax, 登录验证,json数据,文件上传
1.ajax简介 1.向服务器发送请求的途径 # 向服务器发送请求的途径 1. 浏览器地址栏,默认get请求 2. form表单: get请求 post请求 3. a标签,默认get请求 4. Aja ...
- (转)WebApi发送HTML表单数据:文件上传与多部分MIME
5.3 Sending HTML Form Data5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/282 ...
- jspsmartupload 文件上传让input数据和文件上传同时提交
一.使用原因: 文件上传时,表单的属性中必须要有multipart/form-data,如以下例子: <form name="form_post" class="a ...
- WebApi发送HTML表单数据:文件上传与多部分MIME
5.3 Sending HTML Form Data5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/282 ...
- 用PHP,怎么获取PHP.ini中的文件上传最大的字节数。也就是默认的2M
PHP中用ini_get函数来获取服务器允许的文件上传最大字节数,如:
- Django学习笔记之Ajax与文件上传
Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输 ...
- 获取IP相关信息和文件上传
获取IP相关信息 要获取用户访问者的IP地址相关信息,可以利用依赖注入,获取IHttpConnectionFeature的实例,从该实例上可以获取IP地址的相关信息,实例如下: var connect ...
随机推荐
- 【LG5017】[NOIP2018pj]摆渡车
[LG5017][NOIP2018pj]摆渡车 题面 洛谷 题解 震惊!普及组竟然考斜率优化??? 当然有其他的方法 首先我们转化一下模型 此题可以变为: 在一根时间轴上有一些点,每个时间点\(i\) ...
- 2762 helloparty·开车
2762 helloparty·开车 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题目描述 Description hellokitty的一个朋友要来他家,但是 ...
- 15、Java并发编程:Callable、Future和FutureTask
Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一 ...
- [SDOI2010]地精部落 DP
LG传送门 DP好题 题意很简单,就是求1-n的排列,满足一个数两边的数要么都比它大要么都比它小,求这样的排列个数对\(p\)取膜的值(为了表述简单,我们称这样的排列为波动序列). 这个题我第一眼看到 ...
- idea css文件不识别的问题的解决方案
可以看到 progressBar不识别 发现仅仅是这一个文件名不识别 所以换一个任意别的文件名即可识别
- 逆向某停车app(原创)
最近一直在做python开发的事情,信息安全方面做得很少,也是"蛋蛋"的忧伤呀.今天有朋友请我帮忙,将一个app里的文字和图标替换一下,花了一下午和一晚上的时间搞了一下,主要是图标 ...
- javaweb(二十)——JavaBean总结
一.什么是JavaBean JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 这个Java类必须具有一个无参的构造函数 属性必须私有化. 私有化的属性必须通过public类型的方法 ...
- 学习HTML 第四节.插入图像
学习HTML 第四节.插入图像 全是文字的网页太枯燥了吧,我们来搞个图片上去! <!DOCTYPE html><html><head><meta charse ...
- 【python 3.6】调用另一个文件的类的方法
文件1:test12.py 文件2:test13.py 文件1 如下: #!/usr/bin/python # -*- coding: utf-8 -*- ''' ''' class abcd(obj ...
- 第五次ScrumMeeting博客
第五次ScrumMeeting博客 本次会议于10月29日(日)22时整在3公寓725房间召开,持续15分钟. 与会人员:刘畅.辛德泰.窦鑫泽.张安澜.赵奕. 1. 每个人的工作(有Issue的内容和 ...