开发环境是:

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表单,使网页添加上传文件,并分析文件。的更多相关文章

  1. 上传文件表单file,限制上传文件类型的方法--参数accept

    我们使用<input type="file" />来上传文件,但是当你只想要上传某种格式的文件,比如说(jpg)文件时.可以通过accept来限制. <form& ...

  2. [Nginx 2] form表单提交,图片上传

    导读:昨晚恶补了一些Nginx服务器的东西,从整体上对Nginx有一个初步的了解.上午去找师哥问了问目前项目中的使用情况,然后就开始上传图片了.这里就简单总结整理一下今天的成果,以后接着提升.简单粗暴 ...

  3. 给Django后台富文本编辑器添加上传文件的功能

    使用富文本编辑器上传的文件是要放到服务器上的,所以这是一个request.既然是一个request,就需要urls.py进行转发请求views.py进行处理.views.py处理完了返回一个文件所在的 ...

  4. HTML 文件类表单元素如何限制上传类型,Accept属性设置

    需求描述:简单的控制file的选择类型 解决方法:使用HTML  input file 的accept属性控制 实例: <form action="demo_form.asp" ...

  5. iframe和form表单实现ajax请求上传数据

    form的target属性设置为iframe的name值时,表示提交到url后返回的数据显示到iframe区域 <form action="/upload.html" met ...

  6. 页面表单里的图片上传ENCTYPE="multipart/form-data"

    ENCTYPE="multipart/form-data"用于表单里有图片上传. <form action="<%=basePath %>asyUplo ...

  7. 通过jQuery Ajax提交表单数据时同时上传附件

    1.使用场景:需要使用ajax提交表单,但是提交的表单里含有附件上传 2.代码实现方式: <!-- HTML代码 --> <form method="post" ...

  8. SpringMVC 文件上传配置,多文件上传,使用的MultipartFile(转)

    文件上传项目的源码下载地址:http://download.csdn.net/detail/swingpyzf/6979915   一.配置文件:SpringMVC 用的是 的MultipartFil ...

  9. python 全栈开发,Day111(客户管理之 编辑权限(二),Django表单集合Formset,ORM之limit_choices_to,构造家族结构)

    昨日内容回顾 1. 权限系统的流程? 2. 权限的表有几个? 3. 技术点 中间件 session orm - 去重 - 去空 inclusion_tag filter 有序字典 settings配置 ...

随机推荐

  1. Servlet Filter 3

    11.MD5加密 /** * 使用md5的算法进行加密 */ public static String md5(String plainText) { byte[] secretBytes = nul ...

  2. Redis资料汇总专题

    1.Redis是什么? 十五分钟介绍 Redis数据结构 Redis系统性介绍 一个很棒的Redis介绍PPT 强烈推荐!非同一般的Redis介绍 Redis之七种武器 锋利的Redis redis ...

  3. android学习笔记46——File存储

    File存储--IO操作文件 openFileOutput.openFileInput Context提供了如下两个方法来打开本应用程序的数据文件夹里面的文件IO流. 1.FileInputStrea ...

  4. android学习笔记六——Spinner

    注:参考http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0105/2264.html Spinner ==> Spinner ...

  5. golang获取字符串长度需要注意的地方

    中文长度,直接贴代码 package main import ( "fmt" "unicode/utf8" ) func main() { aa := &quo ...

  6. TCP中需要了解的东西

    1.TCP是一个流协议. TCP跟UDP不一样的是,TCP发送过去的东西是stream,也就是说第一次发送的跟第二次发送的数据包可能会粘在一起,即所谓的粘包问题 http://blog.csdn.ne ...

  7. [CSS]图片与文字对齐问题

    摘自:张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com] 图片与文字默认是居底对齐了.所以当图片与文字在一起的时候往往都是不对齐的.尤其图片较小时就更加明显了,我看到很多人使 ...

  8. Win7+VMware Workstation环境下的CentOS-Linux网络连接设置

    Win7+VMware Workstation环境下的CentOS-Linux网络连接设置 http://blog.sciencenet.cn/blog-430991-507041.html   近日 ...

  9. 在sql脚本中将查询结果集拼接成字符串

  10. JAVA 构造代码块

    class G{ G(){ System.out.println("我是无参构造方法"); } G(String name){ System.out.println("我 ...