开发环境是:
apache + python + django+ eclipse(开发环境)
欲达到目的:
在网页上,添加上传文件控件。然后读取csv文件,并分析csv文件。
操作步骤:
django 是MVC的设计模式 (模型M,视图V,控制器C)
1、从django的基本模型中,构建自己的模型。
在myforms.py文件中添加如下代码,之后在html显示的表单数据就可以采用这个模型的数据了。
from django import forms
from django.views.decorators.csrf import csrf_exempt @csrf_exempt
class BatchOptForm(forms.Form):
stype = forms.ChoiceField(choices=((1,'type1'),(2,'type2'),(3,'type3'),(4,'type4'),(5,'type5'),(6,'type6'),), label="batchtype")
batchfile = forms.FileField(required=True, label="数据文件")
2、在视图类viewsql.py中,完成对表单的调用。
def dosomething(request):
data = _getReqData(request, sys._getframe(0).f_code.co_name)
if 'whitelist' != data.get('opt'):
batchform = BatchOptForm(request.POST, request.FILES) #调用模型
if batchform.is_valid():
batchform.fields['stype'] = forms.ChoiceField(choices=((1,'微信'),(2,'手Q'),), label='批量白名单类型')
batchform.fields['batchfile'] = forms.FileField(required=True, label=none)
return render_to_response(whitelist.html, {'form':batchform}) #将表单render 到网页里
3、通过urls.py这个统一资源来管理资源
url(r'^whitelist/$', 'protocoltool.views.whitelist', name='whitelist'),
4、在whitelist.html里贴上表单标签
<table id="" border='' bordercolor="#FFFFFF" width='98%' cellpadding='' cellspacing='' align='center' bgcolor=''>
<tbody>
<tr style="vertical-align:middle" >
<td style="width: 45%;" > {{form.stype.label}} </td>
<td style="width: 50%;" > {{form.stype}} </td>
</tr>
<tr style="vertical-align:middle"
<td style="width: 20%" > {{form.batchfile.label}} </td>
<td style="width: 30%" > {{form.batchfile}} </td>
<button style="width:80px;" class="btn btn-primary" data-loading-text="导入中..." id='IMPORT_WL' onclick='importbatch()'; type="button">批量导入</button></td>
</tr>
</tbody>
</table>
5、在 脚本cncsql.js 文件里,相应 importbatch()
function importbatch()
{
var fname = $('#id_batchfile').val().trim(); # 自动生成的
if ("" == fname) {
alert("未选择批量开户文件");
return;
} $('#IMPORT_WL').button("loading");
var fdata = new FormData(); #构建表单数据
fdata.append('opt', 'whitelist');
fdata.append('stype', $('#id_stype').val()); #自动生成的
fdata.append('batchfile', $('#id_batchfile')[0].files[0]);
$.ajax({
url : '/whitelist/',
data : fdata,
cache : false,
contentType : false,
processData : false,
type : 'POST',
success : function(rdata) {
$('#IMPORT_WL').button("reset");
rdata = JSON.parse(rdata);
………
}
});
}
6、得到效果图
7、通过batchform.cleaned_data['batchfile'] 来调用和处理相关数据
csvfile =batchform.cleaned_data['batchfile']
for line in csvfile.read().split(linesep):
line = line.strip()
……
这样就完成了表单的建模、视图构成和数据处理
使用django表单,使网页添加上传文件,并分析文件。的更多相关文章
-
上传文件表单file,限制上传文件类型的方法--参数accept
我们使用<input type="file" />来上传文件,但是当你只想要上传某种格式的文件,比如说(jpg)文件时.可以通过accept来限制. <form& ...
-
[Nginx 2] form表单提交,图片上传
导读:昨晚恶补了一些Nginx服务器的东西,从整体上对Nginx有一个初步的了解.上午去找师哥问了问目前项目中的使用情况,然后就开始上传图片了.这里就简单总结整理一下今天的成果,以后接着提升.简单粗暴 ...
-
给Django后台富文本编辑器添加上传文件的功能
使用富文本编辑器上传的文件是要放到服务器上的,所以这是一个request.既然是一个request,就需要urls.py进行转发请求views.py进行处理.views.py处理完了返回一个文件所在的 ...
-
HTML 文件类表单元素如何限制上传类型,Accept属性设置
需求描述:简单的控制file的选择类型 解决方法:使用HTML input file 的accept属性控制 实例: <form action="demo_form.asp" ...
-
iframe和form表单实现ajax请求上传数据
form的target属性设置为iframe的name值时,表示提交到url后返回的数据显示到iframe区域 <form action="/upload.html" met ...
-
页面表单里的图片上传ENCTYPE=";multipart/form-data";
ENCTYPE="multipart/form-data"用于表单里有图片上传. <form action="<%=basePath %>asyUplo ...
-
通过jQuery Ajax提交表单数据时同时上传附件
1.使用场景:需要使用ajax提交表单,但是提交的表单里含有附件上传 2.代码实现方式: <!-- HTML代码 --> <form method="post" ...
-
SpringMVC 文件上传配置,多文件上传,使用的MultipartFile(转)
文件上传项目的源码下载地址:http://download.csdn.net/detail/swingpyzf/6979915 一.配置文件:SpringMVC 用的是 的MultipartFil ...
-
python 全栈开发,Day111(客户管理之 编辑权限(二),Django表单集合Formset,ORM之limit_choices_to,构造家族结构)
昨日内容回顾 1. 权限系统的流程? 2. 权限的表有几个? 3. 技术点 中间件 session orm - 去重 - 去空 inclusion_tag filter 有序字典 settings配置 ...
随机推荐
-
聚类算法:K-means
2013-12-13 20:00:58 Yanjun K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离 ...
-
ActiveMQ和Tomcat的整合应用(转)
转自:http://topmanopensource.iteye.com/blog/1111321 ActiveMQ和Tomcat的整合应用 博客分类: ActiveMQ学习和研究 在Active ...
-
Java, C#, Swift语法对比速查表
原文:Java, C#, Swift语法对比速查表 Java 8 C# 6 Swift 变量 类型 变量名; 类型 变量名; var 变量名 : 类型; 变量(类型推断) N/A var 变量名= ...
-
DHTML【11】--DOM
大家好,从今天开始,我们将进入DOM的学习. DOM?DOM是何东东呢?大家还记得我在前面提过的DOM树吗?就是我在前面讲HTML的时候画的那个图,那个其实就是一个简单的DOM树,浏览器在解析HTML ...
-
基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案
基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案 最近在研究Java,涉及命令行编译,使用notepad++编辑器,然后使用javac编译: 之前的几个文件没有中文的内容,都没 ...
-
Android ------------------ 带边框的圆角矩形
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http:/ ...
-
Lua和C++交互 学习记录之六:全局函数交互
主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3 参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 1 ...
-
zoj 2060 Fibonacci Again(fibonacci数列规律、整除3的数学特性)
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2060 题目描述: There are another kind ...
-
环形缓冲区-模仿linux kfifo【转】
转自:https://blog.csdn.net/vertor11/article/details/53741681 struct kfifo{ uint8_t *buffer; uint32_t i ...
-
spring框架的概述与入门
1. Spring框架的概述 * Spring是一个开源框架 * Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J ...