Heim  >  Artikel  >  Web-Frontend  >  Das Django-Framework verwendet Ajax, um die Batch-Importdatenfunktion zu implementieren

Das Django-Framework verwendet Ajax, um die Batch-Importdatenfunktion zu implementieren

亚连
亚连Original
2018-05-24 10:44:061726Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur Verwendung von Ajax durch das Django-Framework zur Implementierung der Batch-Importdatenfunktion vorgestellt.

Das Beispiel in diesem Artikel zeigt Ihnen die Verwendung von Ajax So implementieren Sie die Batch-Importdatenfunktion auf der Webseite: Der spezifische Inhalt lautet wie folgt:

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)

Code in der Vorlage:

$('#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>

Das Formular verwendet Post+Ajax. Beachten Sie, dass die Post-Methode verwendet wird Um ein Formular in Django einzureichen, müssen zwei Bedingungen erfüllt sein:

Fügen Sie {% zum Formular csrf_token %} hinzu, fügen Sie csrfmiddlewaretoken: "{{ csrf_token }}" zum JQuery-Code hinzu, das war's!

Das Obige habe ich für alle zusammengestellt und hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Implementierung der AJAX-Anforderungswarteschlange

Eine Zusammenfassung mehrerer Methoden zum asynchronen Senden von Formularen mit Ajax

So lösen Sie das Problem von Arrays in AJAX-Anfragen

Das obige ist der detaillierte Inhalt vonDas Django-Framework verwendet Ajax, um die Batch-Importdatenfunktion zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn