Maison > interface Web > js tutoriel > le corps du texte

Le framework Django utilise ajax pour implémenter la fonction d'importation de données par lots

亚连
Libérer: 2018-05-24 10:44:06
original
1788 Les gens l'ont consulté

Cet article présente principalement les informations pertinentes sur l'utilisation d'ajax par le framework Django pour implémenter la fonction d'importation de données par lots. Les amis dans le besoin peuvent s'y référer

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

code url.py :

url(r'^workimport/$', 'keywork.views.import_keywork', name='import_keywork')
Copier après la connexion

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)
Copier après la connexion

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']+"条");   
     }           
   )
  });  


<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>
Copier après la connexion

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

Ajouter {% csrf_token %} au formulaire, et ajouter csrfmiddlewaretoken : "{{ csrf_token }}" au code jquery, et c'est tout !

Ce qui précède est ce que j'ai compilé pour tout le monde. J'espère que cela sera utile à tout le monde à l'avenir.

Articles connexes :

Implémentation de la file d'attente de requêtes AJAX

Un résumé de plusieurs méthodes de soumission de formulaires de manière asynchrone à l'aide d'Ajax

Comment résoudre le problème des tableaux dans les requêtes AJAX

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!