日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

序列化(js, python,django,ajax,JsonResponse)

系統(tǒng) 1972 0

一 . JS和python的序列化

序列化(js, python,django,ajax,JsonResponse)_第1張圖片

?python的序列化

  1. json字符串 = json.dumps('python對(duì)象')
  2. python對(duì)象 = json.loads('json字符串')

JS的序列化

  1. js對(duì)象 = JSON.parse('字符串')
  2. json字符串 = JSON.stringfy('js對(duì)象')

二.?Django和ajax序列化

django序列化

1.兩次序列化

            
              def get_data(request):
    from django.core import serializers
    # 引入serializers, 它只能將django對(duì)象序列化
    ret = {'status': True, 'data': None}
    try:
        user_list = model.UserInfo.objects.all()
        # 拿到的是對(duì)象, Queryset([obj. obj])
        ret['data'] = serializers.serialize('json',user_list)
        # serialize('json格式',Queyrset對(duì)象)
    result = json.dumps(ret)
    # serializers不能將python類型序列化
    return HttpResponse(result)
            
          
            
              from django.core import serializers
            
          
            
              serializers.serialize()只能將djang對(duì)象序列化,
            
          

上面objects.all()拿到的時(shí)Queryset對(duì)象

相應(yīng)的前端ajax

            
                  $.ajax({
        url: "",
        type: 'GET',
        dataType: "JSON",
        // 將后端的json字符串轉(zhuǎn)為JS對(duì)象,來(lái)操作, 上面的datatype將json字符串轉(zhuǎn)為JS對(duì)象后,才能.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對(duì)象而里面套的是字典
    result = json.dumps(ret)
    # 可以直接用dumps序列化
    return HttpResponse(result)
            
          

這里直接.all().valuse() 拿到類似python對(duì)象的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)
            
          

能把字典轉(zhuǎn)換為json格式, 只能是字典格式

            
              JsongResponse(data, safe=False)
            
          

加個(gè)safe=False, 可以把列表等類型轉(zhuǎn)換為字符串

?

?

總的來(lái)說(shuō)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)
# 返回一個(gè)字典 {'id': 1, 'name': 'xx'}
            
          

3) serializers

4)restframework

?

?

?

?

?

?

?

?

?

?

?

?

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 永定县| 五家渠市| 漳浦县| 洪洞县| 红河县| 砀山县| 江门市| 洪江市| 福清市| 大姚县| 南部县| 威海市| 克什克腾旗| 石棉县| 福清市| 麻栗坡县| 莱西市| 迁安市| 大理市| 安图县| 嘉善县| 云阳县| 报价| 平乐县| 峨边| 青阳县| 新野县| 两当县| 棋牌| 七台河市| 嵊泗县| 高平市| 临城县| 宁强县| 南溪县| 盘锦市| 疏附县| 康乐县| 济源市| 海原县| 乐昌市|