Python全栈开发【Django进阶之序列化】

Django序列化

  序列化是将对象状态转换为可保持或传输的格式的过程

  反序列化是指将存储在存储媒体中的对象状态装换成对象的过程 

  例如游戏都有存档的功能、再次开始的时候只需读档即可(这即是一个序列化与反序列的过程)

  序列化也可以将一个对象传递到另一个地方的

  关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式。

1、serializers

用于序列化QuerySet中的对象

from django.core import serializers
  
ret = models.BookType.objects.all()
  
data = serializers.serialize("json", ret)

2、json.dumps

import json
  
#ret = models.BookType.objects.all().values('caption')
ret = models.BookType.objects.all().values_list('caption')
  
ret=list(ret)
  
result = json.dumps(ret)

JsonResponse

另外也可以用JsonResponse传递一个数组或字典到网页,由JS处理,再显示出来。

views.py

from django.http import HttpResponse
import json
 
def ajax_list(request):
    a = range(100)
    return HttpResponse(json.dumps(a), content_type='application/json')
 
def ajax_dict(request):
    name_dict = {'twz': 'Love python and Django', 'zqxt': 'I am teaching Django'}
    return HttpResponse(json.dumps(name_dict), content_type='application/json')
from django.http import JsonResponse
 
def ajax_list(request):
    a = range(100)
    return JsonResponse(a, safe=False)
 
def ajax_dict(request):
    name_dict = {'twz': 'Love python and Django', 'zqxt': 'I am teaching Django'}
    return JsonResponse(name_dict)

index.html




请输入两个数字

a:
b:

result:

Ajax 加载字典

Ajax 加载列表

  

 

转载于:https://www.cnblogs.com/mocean/p/6602483.html

你可能感兴趣的:(Python全栈开发【Django进阶之序列化】)