12-Django自带的序列化器

数据准备

mysql> select * from app1_userinfo;
+----+--------------+----------+-----+----------------------------+
| id | username     | password | age | register_time              |
+----+--------------+----------+-----+----------------------------+
| 10 | 万年公主     | 12       |   3 | 2024-03-04 09:16:40.239485 |
| 11 | 小白         | 123      |   3 | 2024-03-04 09:16:40.239485 |
| 14 | cancerwake   | 123      |   3 | 2024-03-04 09:16:40.239485 |
| 15 | 上官婉儿     | 782      |   7 | 2024-03-04 09:16:40.239485 |
| 16 | 哆啦A梦      | 123      |   4 | 2024-03-04 09:16:40.239485 |
+----+--------------+----------+-----+----------------------------+
5 rows in set (0.00 sec)

常规做法

def orm(request):
    
    import json

    items = models.UserInfo.objects.all()  # QuerySet
    data: list = []
    for item in items:
        temp_dict = dict()
        temp_dict['username'] = item.username
        temp_dict['password'] = item.password
        data.append(temp_dict)

    rst = json.dumps(data, ensure_ascii=False)
    return HttpResponse(rst)

image-20240305163228000

Django自带的序列化器 serializers

def orm(request):
    # 导入这个模块
    from django.core import serializers

    items = models.UserInfo.objects.all()
    rst = serializers.serialize('json', items)
    
    print(type(rst))  # <class 'str'>
    return HttpResponse(rst)

image-20240305163618413

posted @ 2024-03-23 00:49  小满三岁啦  阅读(5)  评论(0编辑  收藏  举报