ジャンゴのシリアライズ

バッククライアントユーザに取得したデータでデータベース上のシリアル化Djangoの主な用途は、特別なリクエストは、通常のAjax、JSON形式に戻されます。

データベースから抽出された我々のデータ形式三ある:1、すべてが()クエリセットオブジェクトを返す;(2値)タイプのクエリセットオブジェクト辞書を返し、3、vlaues_list()タプルが返されるオブジェクトクエリセット

1、2及び3種類)(後端json.dumpsによってフロントエンドに送信することができます。

******オブジェクト取得quesysetの後端は******* 
インポートJSON 
RET = models.BookType.objects.all()値(' キャプション' 
RET = models.BookType.objects.all()。 values_list(' キャプション' 
RET = リスト(RET)
の結果 = json.dumps(RET)
 *******遠位AJAX ****** 
遠位AJAXは、後端にデータJSON.parse(データ)を受信変換データ転送quesyset

図2に示すように、ケース1の場合:クエリセットは、シリアライザを必要取得シリアライズオブジェクトは、フロントエンド変換器に渡すことができます

データベースバックエンド******* *********からデータを抽出
 から django.core インポートシリアライザ
RET = models.BookType.objects.all()
データ = serializers.serialize(" JSON "、RET )#1 注シリアライザは、変換がクエリセットオブジェクトシリアライズする 
JSON.parse(データを変換して得られたデータのフロントエンドを*******)を

:期日の日時json.dumpsを処理できない、プロセッサは、次のようなカスタム拡張によって行うことができるインポートJSON 

以下からの日時の輸入から日時インポート日時
   
クラスJsonCustomEncoder(json.JSONEncoder):
    
    デフ(自己、フィールド)デフォルト:
     
        もしでisinstance(フィールド、日時): 
             返す o.strftime(" %Y-%M-%D%H:% M:%のS ' のelifのでisinstance(フィールド、日付): 
             返す o.strftimeを(' %Y-%M-%D " それ以外返すjson.JSONEncoder.default(自己、フィールド)(D = datetime.nowを)
   

DS =使用json.dunmpsのjson.dumps(D、CLS = JsonCustomEncoder )# ベースクラス呼び出し

にステップ相当します。
= datetime.now()
CLS = JsonCustomEncoder()
D = cls.default(A)
のDS =のjson.dumps(D)

 

おすすめ

転載: www.cnblogs.com/dushangguzhousuoli/p/10972518.html