数据准备
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)
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)