第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Django中接收J(rèn)SON格式的數(shù)據(jù)

如何在Django中接收J(rèn)SON格式的數(shù)據(jù)

梵蒂岡之花 2019-03-27 20:17:14
如何在Django中接收J(rèn)SON格式的數(shù)據(jù)
查看完整描述

2 回答

?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

下面通過一個例子說明如何從HTML中發(fā)送json,并在Django中接收json數(shù)據(jù),在HTML中,可以通過JSON對象將數(shù)據(jù)以Json格式發(fā)送到服務(wù)器,假設(shè)在play.html中有以下內(nèi)容要發(fā)送到服務(wù)器:

  • 用戶名username

  • 密碼password

  • 一個數(shù)組,其中每個元素包含: 游戲編號game_id和得分level

那么,,可以使用如下JavaScript(JQuery)代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<script type="text/javascript">

$(function() {

    $('#upload').click(function() {

        var json_obj = {

                username: $('#username').val(),

                password: $('#password').val(),

                datas: [

                        {

                            game_id: $('#datas1').val(),

                            level: $('#level1').val()

                        },

                        {

                            game_id: $('#datas2').val(),

                            level: $('#level2').val()

                        }

                       ]

                };    //JSON對象   

 

        var json_str = JSON.stringify(json_obj);    //將JSON對象轉(zhuǎn)變成JSON格式的字符串

        $.post("/datasave", json_str, callback, "json");

    })

 

    function callback(json){

        $('#response').html('code:'+json['status']['code'] + "\tmessage:" + json['status']['message']);

    }

})

</script>

在上面的代碼中,數(shù)據(jù)將發(fā)送到/datasave,在Django中使用request.raw_post_data,并借助simplejson來將其轉(zhuǎn)換為字典dict數(shù)據(jù)類型,代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

def datasave(request):

    dict = {}

    info = 'Data log save success'

    try:

        if request.method == 'POST':

        //request.raw_post_data從客戶端發(fā)送過來的原始數(shù)據(jù),通過simplejson的loads方法將其轉(zhuǎn)換為字典數(shù)據(jù)類型req

            req = simplejson.loads(request.raw_post_data)

            username = req['username']

            password = req['password']

            datas = req['datas']

            game_id1 = datas[0]['game_id']

   except:

        import sys

        info = "%s || %s" % (sys.exc_info()[0], sys.exc_info()[1])

 

    dict['message']=info

    dict['create_at']=str(ctime())

    json=simplejson.dumps(dict)

    return HttpResponse(json)


 

 


查看完整回答
反對 回復(fù) 2019-03-30
?
犯罪嫌疑人X

TA貢獻2080條經(jīng)驗 獲得超4個贊

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

def datasave(request):

    dict = {}

    info = 'Data log save success'

    try:

        if request.method == 'POST':

            req = simplejson.loads(request.raw_post_data)

            username = req['username']

            password = req['password']

            datas = req['datas']

            game_id1 = datas[0]['game_id']

   except:

        import sys

        info = "%s || %s" % (sys.exc_info()[0], sys.exc_info()[1])

 

    dict['message']=info

    dict['create_at']=str(ctime())

    json=simplejson.dumps(dict)

    return HttpResponse(json)

request.raw_post_data表示的是從客戶端發(fā)送過來的原始數(shù)據(jù),為了純字符串, 通過simplejson的loads方法將其轉(zhuǎn)換為字典數(shù)據(jù)類型req.
上面的代碼也演示了如何以JSON格式作為響應(yīng)值, 而非HTML, 即通過simplejson的dumps方法,
將字典數(shù)據(jù)dict序列化為字符串形式,將通過HttpResponse返回.



查看完整回答
反對 回復(fù) 2019-03-30
  • 2 回答
  • 0 關(guān)注
  • 4210 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號