1. 程式人生 > 實用技巧 >django序列化操作和資料批量插入

django序列化操作和資料批量插入

django自帶的序列化元件(drf做鋪墊)

  在實際的前後端分離的專案中,我們經常需要在後端專案中獲取到資料庫中的資料,將資料庫中的資料序列化打包,以json資料隨著程式碼一起發給後端。那麼在這個時候我們需要對資料庫中的資料進行序列化操作。

import json
from django.http import JsonResponse
from django.core import serializers
def ab_ser(request):
    user_queryset = models.User.objects.all()
    #用自己的方法將資料庫獲取到的資料進行json序列化
# [{},{},{},{},{}] # user_list = [] # for user_obj in user_queryset: # tmp = { # 'pk':user_obj.pk, # 'username':user_obj.username, # 'age':user_obj.age, # 'gender':user_obj.get_gender_display() # } # user_list.append(tmp)
# return JsonResponse(user_list,safe=False) # return render(request,'ab_ser.html',locals()) # django後端序列化 res = serializers.serialize('json',user_queryset) """會自動幫你將資料變成json格式的字串 並且內部非常的全面""" return HttpResponse(res)

批量插入

def ab_pl(request):
    # 先給Book插入一萬條資料
    # for i in range(10000):
# models.Book.objects.create(title='第%s本書'%i) # # 再將所有的資料查詢並展示到前端頁面 # book_queryset = models.Book.objects.all() # 批量插入 # book_list = [] # for i in range(100000): #生成書籍物件,沒有對資料庫進行操作。 # book_obj = models.Book(title='第%s本書'%i) # book_list.append(book_obj) #一次性直接插入 # models.Book.objects.bulk_create(book_list) """ 當你想要批量插入資料的時候 使用orm給你提供的bulk_create能夠大大的減少操作時間 """