使用django表单,使网页添加上传文件,并分析文件。

时间:2022-09-09 09:54:10

开发环境是:

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、得到效果图

使用django表单,使网页添加上传文件,并分析文件。

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. &lbrack;Nginx 2&rsqb; 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&quot ...

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

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

  6. 页面表单里的图片上传ENCTYPE&equals;&quot&semi;multipart&sol;form-data&quot&semi;

    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&lpar;客户管理之 编辑权限&lpar;二&rpar;&comma;Django表单集合Formset&comma;ORM之limit&lowbar;choices&lowbar;to&comma;构造家族结构&rpar;

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

随机推荐

  1. 聚类算法:K-means

    2013-12-13 20:00:58    Yanjun K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离 ...

  2. ActiveMQ和Tomcat的整合应用&lpar;转&rpar;

    转自:http://topmanopensource.iteye.com/blog/1111321 ActiveMQ和Tomcat的整合应用 博客分类: ActiveMQ学习和研究   在Active ...

  3. Java&comma; C&num;&comma; Swift语法对比速查表

    原文:Java, C#, Swift语法对比速查表   Java 8 C# 6 Swift 变量 类型 变量名; 类型 变量名; var 变量名 : 类型; 变量(类型推断) N/A var 变量名= ...

  4. DHTML【11】--DOM

    大家好,从今天开始,我们将进入DOM的学习. DOM?DOM是何东东呢?大家还记得我在前面提过的DOM树吗?就是我在前面讲HTML的时候画的那个图,那个其实就是一个简单的DOM树,浏览器在解析HTML ...

  5. 基于Windows下处理Java错误&colon;编码GBK的不可映射字符的解决方案

    基于Windows下处理Java错误:编码GBK的不可映射字符的解决方案 最近在研究Java,涉及命令行编译,使用notepad++编辑器,然后使用javac编译: 之前的几个文件没有中文的内容,都没 ...

  6. Android ------------------ 带边框的圆角矩形

    <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http:/ ...

  7. Lua和C&plus;&plus;交互 学习记录之六:全局函数交互

    主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3  参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 1 ...

  8. zoj 2060 Fibonacci Again(fibonacci数列规律、整除3的数学特性)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2060 题目描述: There are another kind ...

  9. 环形缓冲区-模仿linux kfifo【转】

    转自:https://blog.csdn.net/vertor11/article/details/53741681 struct kfifo{ uint8_t *buffer; uint32_t i ...

  10. spring框架的概述与入门

    1. Spring框架的概述 * Spring是一个开源框架 * Spring是于2003 年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J ...