json_response的用法


傳統的方法是當我們處理一個表單時,我們Post數據給服務器,服務器對數據進行處理后將數據返回給用戶,此時部分寫法是用頁面刷新的方式將頁面重新刷新一次呈現給用戶,這樣的話用戶相當於讀入了兩次頁面,人一多的話對服務器壓力比較大。如果采用ajax的方式,我們只需要對頁面局部進行刷新而不需要刷新整個頁面,這樣可以大量節省服務器資源。而一個結合json response的例子如下:

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個子集。JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。

語言轉化表 前者轉化為后者時的類型變化

image

image

首先在django中定義json函數:

import json

def json_response(flag=False, msg='', content=''):
    return HttpResponse(json.dumps({'flag': flag, 'msg': msg, 'data': content}))

在views函數中的使用

return json_response(True, '提交錯誤')

在html頁面中將其應用在ajax中

function check() {
                $("#Qsubmit").click(function(e){
                    e.preventDefault();                                                  //阻止提交數據
                    $.ajax({
                        type:"POST",                        //提交類型
                        url: "{% url 'message:expert_mentor' %}",         //處理的函數
                        data: $("form").serialize(),                                 //將表單中的值按照dict序列化
                        dataType: "json",              //數據類型
                        success: function(response){        //成功后的響應函數
                            if(response['flag'] == true){
                                $("#question2").val("");        //對局部填寫的數據進行清空
                                alert("感謝你的提問,我們會盡快安排專家對您的問題進行回答,謝謝!");
                            }else{
                                alert(response['msg']);
                            }
                        }
                    })
                })
                }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM