バッククライアントユーザに取得したデータでデータベース上のシリアル化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)