一 . JS和python的序列化
?python的序列化
- json字符串 = json.dumps('python對象')
- python對象 = json.loads('json字符串')
JS的序列化
- js對象 = JSON.parse('字符串')
- json字符串 = JSON.stringfy('js對象')
二.?Django和ajax序列化
django序列化
1.兩次序列化
def get_data(request):
from django.core import serializers
# 引入serializers, 它只能將django對象序列化
ret = {'status': True, 'data': None}
try:
user_list = model.UserInfo.objects.all()
# 拿到的是對象, Queryset([obj. obj])
ret['data'] = serializers.serialize('json',user_list)
# serialize('json格式',Queyrset對象)
result = json.dumps(ret)
# serializers不能將python類型序列化
return HttpResponse(result)
from django.core import serializers
serializers.serialize()只能將djang對象序列化,
上面objects.all()拿到的時Queryset對象
相應的前端ajax
$.ajax({
url: "",
type: 'GET',
dataType: "JSON",
// 將后端的json字符串轉為JS對象,來操作, 上面的datatype將json字符串轉為JS對象后,才能.data
success: function (arg) {
var v = JSON.parse(arg.data)
}
})
?
2.
def get_data(request):
ret = {'status': True, 'data': None}
try:
user_list = model.UserInfo.objects.all().values("id", "username")
# values拿到的是Queryset對象而里面套的是字典
result = json.dumps(ret)
# 可以直接用dumps序列化
return HttpResponse(result)
這里直接.all().valuse() 拿到類似python對象的Queryset, 可以直接序列化
?
$.ajax({
url: "",
type: 'GET',
dataType: "JSON",
// 一次反序列化就行
success: function (arg) {
}
})
?
注意:values()? ? ?返回字典列表? ? ? ? ? ? ? ?valuse_list()? 返回元組列表
?
3 JsonResponse
from django.http import JsonRsponse
data = {"name": "aki", "age": 17}
return Jsonreponse(data)
能把字典轉換為json格式, 只能是字典格式
JsongResponse(data, safe=False)
加個safe=False, 可以把列表等類型轉換為字符串
?
?
總的來說django序列化
1) list(Publish.objects.all().values("name", "xx"))
2) model_to_dict
from django.forms.models import model_to_dict
publish_list = Publish.objects.all()
temp = []
for obj in publish_list:
temp.append(model_to_dict)
# 返回一個字典 {'id': 1, 'name': 'xx'}
3) serializers
4)restframework
?
?
?
?
?
?
?
?
?
?
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
