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

本文作者:小满三岁啦

本文链接:https://www.cnblogs.com/ccsvip/p/18090676

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   小满三岁啦  阅读(12)  评论(0编辑  收藏  举报
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 夜空中最亮的星 小果酱
夜空中最亮的星 - 小果酱
00:00 / 00:00
An audio error has occurred.
点击右上角即可分享
微信分享提示