Maison  >  Article  >  interface Web  >  Comment importer des données par lots avec ajax

Comment importer des données par lots avec ajax

php中世界最好的语言
php中世界最好的语言original
2018-04-04 17:26:522222parcourir

Cette fois, je vais vous montrer comment importer des données par lots avec ajax Quelles sont les précautions pour l'importation de données par lots ajax Voici un cas pratique, jetons un oeil.

L'exemple de cet article partage avec vous la méthode d'implémentation d'utilisation d'ajax pour implémenter la fonction d'importation de données par lots dans la page Web pour votre référence. Le contenu spécifique est le suivant

url.py. code :

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

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)

Cette partie du code fait référence à l'article précédent (Importation par lots Django de données non dupliquées )

Code dans le modèle :

$('#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']+"条");   
     }           
   )
  });  
ff9c23ada1bcecdd1a0fb5d5a0f18437
     {% csrf_token %}
     2e1cf0710519d5598b1f0f14c36ba6744a70ab11cb3f9cc5680b32a240f0a02872ac96585ae54b6ae11f849d2649d9e6 请选择需要被导入的文件8c1ecd4bb896b2264e0711597d40766c
     b3f84f87d3c6874857fd110600f8fc53
     dceb1becf493d288d1722720122251ac
    f5a47148e367a6035fd7a2faa965022e
    db39dff8c01c205b23a9fa444ba37a7894b3e26ee717c64999d7867364b1b4a3
   94b3e26ee717c64999d7867364b1b4a3

Le formulaire utilise post+ajax Notez que l'utilisation de la méthode post pour soumettre un formulaire dans Django doit remplir deux conditions :

Ajoutez {% csrf_token %} au formulaire, et ajoutez le code

jquery Ajoutez simplement csrfmiddlewaretoken : "{{ csrf_token }}" et c'est tout

Je crois que vous maîtrisez la méthode ! après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de PHP !

Lecture recommandée :

Explication détaillée de l'utilisation de l'objet XMLHttpRequest d'AJAX

Comment ajax réalise-t-il une longue connexion entre le serveur et le navigateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn