Home > Web Front-end > JS Tutorial > body text

How to import data in batches with ajax

php中世界最好的语言
Release: 2018-04-04 17:26:52
Original
2240 people have browsed it

This time I will show you how to batch import data with ajax. What are the precautions for ajax batch import of data? The following is a practical case, let's take a look.

The example of this article shares with you the implementation method of using ajax to realize the batch import data function in the web page for your reference. The specific content is as follows

url.py code:

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

view.py code:

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)
Copy after login

This part of the code refers to the previous article (

Django batch import of non-duplicate data)

Code in the template:

$('#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>
    <p id="test1"></p>
   </p>
Copy after login

The form uses post+ajax. Note that using the post method to submit a form in Django must meet two conditions:

Add {% csrf_token %} to the form, and add csrfmiddlewaretoken:"{ to the

jquery code { csrf_token }}", that's it!

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!

Recommended reading:

Detailed explanation of the use of AJAX's XMLHttpRequest object

##How ajax implements a long connection between the server and the browser

The above is the detailed content of How to import data in batches with ajax. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template