Django框架利用ajax实现批量导入数据功能_AJAX相关

本文实例为大家分享了网页中利用ajax实现批量导入数据功能的实现方法,供大家参考,具体内容如下

url.py代码:

复制代码 代码如下:

url(r'^workimport/$', 'keywork.views.import_keywork', name='import_keywork')

view.py代码:

from keywork.models import DevData
from django.http import JsonResponse #django ajax部分

def import_keywork(request):
 file_sjdr = request.POST['file_keywork']
 f = open(file_sjdr)
 WorkList = []
 next(f) #将文件标记移到下一行
 x = y = 0
 for line in f:
  parts = line.replace('"','') #将字典中的"替换空
  parts = parts.split(',') #按;对字符串进行切片
  if DevData.objects.filter(serv_id = parts[0],user_flag=parts[15]).exists():
   x = x + 1
  else:
   y = y + 1
   WorkList.append(DevData(serv_id=parts[0], serv_state_name=parts[1], acc_nbr=parts[2], user_name=parts[3], acct_code=parts[4], product_id=parts[5],
       mkt_chnl_name=parts[6], mkt_chnl_id=parts[7],mkt_region_name=parts[8], mkt_region_id=parts[9],mkt_grid_name=parts[10],
       sale_man=parts[11],sale_outlets_cd1_name=parts[12], completed_time=parts[13],remove_data=parts[14], user_flag=parts[15],
       pro_flag=parts[16], service_offer_id=parts[17],service_offer_name=parts[18], finish_time=parts[19],staff_name=parts[20],
       staff_code=parts[21],org_name=parts[22],prod_offer_name=parts[23],day_id=parts[24],
       ))
 f.close()
 DevData.objects.bulk_create(WorkList)
 num = {'success':str(y) ,'fail':str(x) , 'sum':str(x+y)}
 return JsonResponse(num)

此部分代码参考上一片文章 (Django批量导入不重复数据)

模板中代码:

$('#btn_sjdr').click(function(){
   $.post("{% url 'import_keywork' %}",
     {
       csrfmiddlewaretoken:"{{ csrf_token }}",
      file_keywork:$("#file_keywork").val(),
     },
     function(data,status) {
      $("#test1").html(status+"重复数据"+data['fail']+"条,成功导入数据"+data['success']+"条");
     }
   )
  });  

<form>
     {% csrf_token %}
     <label><i class="icon-file"></i> 请选择需要被导入的文件</label>
     <input id="file_keywork" type="file"/>
     <input type="button" id="btn_sjdr" value="导入" class="btn btn-primary btn-sm"/>
    </form>
    <div id="test1"></div>
   </div>

表单采用post+ajax,注意django中使用post方法提交表单要满足两个条件:

在form加入{% csrf_token %},在jquery代码中加入csrfmiddlewaretoken:"{{ csrf_token }}",即可!

以上就是本文的全部内容,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ajax批量导入数据
django ajax、django ajax post、django框架、django前端框架、django ajax csrf,以便于您获取更多的相关知识。

时间: 2024-10-01 11:25:37

Django框架利用ajax实现批量导入数据功能_AJAX相关的相关文章

利用AJAX实现无刷新数据分页_AJAX相关

以前在使用Asp.Net的时候用过GridView这个控件,这个控件自带分页的功能,虽然很丑,但是功能还是很强大的.这里呢,给大家展示一下更加给力的方式--利用AJAX无刷新直接从服务器获取数据分页. 一.实现过程 注意:一下的内容都是在服务器内使用的. 首先要在服务器的路径下建立几个文件,比如,page1.txt,page2.txt,page3.txt. 每个文件中放入数组,如下: 复制代码 代码如下: [{user:'blue',pass:'123'},{user:'aaa',pass:'d

通过抓取淘宝评论为例讲解Python爬取ajax动态生成的数据(经典)_AJAX相关

在学习python的时候,一定会遇到网站内容是通过 ajax动态请求.异步刷新生成的json数据 的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据. 至于读取静态网页内容的方式,有兴趣的可以查看本文内容. 这里我们以爬取淘宝评论为例子讲解一下如何去做到的. 这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url) 二 获取该ajax请求返回的json数据 三 使用python解析json数据

JQuery+ajax实现批量上传图片(自写)_AJAX相关

在网上搜索了一下,发现以jquery+ajax方式实现单张图片上传的代码是有的,但实现批量上传图片的程序却没搜索到,于是根据搜索到的代码,写了一个可以批量上传的.先看效果图 点击增加按钮,会增加一个选择框,如下图: 选择要上传的图片,效果图如下: 上传成功如下图: 下面来看代码:前台html主要代码: 复制代码 代码如下: <button id="SubUpload" class="ManagerButton" onClick="TSubmitUpl

Ajax实现智能提示搜索功能_AJAX相关

一.效果图: 二.实现过程:   思路:  三.部分代码:html: <div id="searchbox"> <div><input type="text" id="txtTitle" /></div> <div id="btnSelect"><a href="javascript:;">Google</a></di

asp.net线程批量导入数据时怎么通过ajax获取执行状态

前言 最近因为工作中遇到一个需求,需要做了一个批量导入功能,但长时间运行没个反馈状态,很容易让人看了心急,产生各种臆想!为了解决心里障碍,写了这么个功能. 通过线程执行导入,并把正在执行的状态存入session,既共享执行状态,通过ajax调用session里的执行状态,从而实现反馈导入状态的功能! 上代码: 前端页面    代码如下 复制代码 <!DOCTYPE html> <htmllang="en"> <head>  <metachars

sql 利用存储过程批量导入数据

什么是存储过程 存储过程(stored procedure)是一组为了完成特定功能的sql语句集,是利用sql server所提供的transact-sql语言所编写的程序.经编译后存储在数据库教程中.存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是由流控制和sql语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 .同时,存储过程可以接收和输出参数.返回执行

用QueryTable向excel批量导入数据

前面写过两篇excel操作的文章,有朋友质疑大批量数据下的性能问题,这个时候最好用批量复制的 方法,可以用excel的QueryTable来直接查询数据库,但是必须引用com组件. 参考代码: using System;using System.Collections.Generic;using System.Text;using System.Reflection;using Excel = Microsoft.Office.Interop.Excel;namespace ConsoleApp

使用Oracle sql loader批量导入数据

在性能测试中,有一项十分重要的准备工作就是准备测试数据.在进行性能测试之前,首先要保证测试数据库中有测试所需要的足够多的数据.对于数据的准备工作,有时候我会使用LoadRunner生成相应的脚本去准备数据,这样的做法有一个好处就是简便易行,然而它有一个很大的缺点就是效率太慢,当我们需要的数据量极大时,这样做是非常耗时间的,所以我觉得还需要掌握各种不同的技能来完成这个任务.以下就是我在前不久的一次测试中学到的经验: 使用oracle sql loader批量导入数据(在准备测试数据时很有用!) 生

Cassandra使用pycassa批量导入数据

本周接手了一个Cassandra系统的维护工作,有一项是需要将应用方的数据导入我们维护的Cassandra集群,并且为应用方提供HTTP的方式访问服务.这是我第一次接触KV系统,原来只是走马观花似的看过KV啊,NoSQL啊.但是实际上没有实际的使用经验.经过两天的学习和接手,终于搞明白了在生产环境中的使用方式.在此简要的笔记一下.本文主要包括的内容有: Cassandra的简介, Cassandra的相关CLI Cassandra的Python API,并且给出一个批量导入数据的例子. 1. C