Django中JSON的使用

一、后端向前端传JSON数据

python的json.dumps方法+js的JSON.parse方法

首先后端views.py中:

    
def login(request):
    Users = models.User.objects.all()
    username = []
    for i in Users:
        username.append(i.username)
    return render(request, "login.html",{'username': json.dumps(username)})

        其中 username是我User表中的一个字段,json.dumps()是python中json库的一个函数,将python对象编码成json字符串。python的json库还有一个函数是json.loads(),将已编码的json字符串解码为python对象,在下面也会介绍。

        好了,通过render我们将json格式的username传到了前端


前端html中:

var usernames = "{{ username }}";
var usernames_r = usernames.replace(/\"/g, '\"');
var usernames_r_p = JSON.parse(usernames_r);

        js中对json的处理也有两个函数。JSON.parse() 方法用于将一个 JSON 字符串转换为对象。另一个方法JSON.stringify() 用于将 JavaScript 值转换为 JSON 字符串。

        最终前端得到的usernames_r_p是个列表(原谅我取的变量名),然后前端js就能使用列表中的数据啦!我们可以alert一下,看看usernames_r_p输出的是什么。

json可以转化的类型很多,这边只举了个list的例子,其他类型的还有(自己尝试):

    


二、前端向后端传数据

js的JSON.stringify()方法+python的json.loads()方法,上面也介绍过了,这边只放个object的例子。

前端html中:

<script>
    function sub()
    {
        var a = document.getElementById("aa").value;
        var b = document.getElementById("bb").value;
        var str = {"a": a, "b": b};
        var str_json = JSON.stringify(str);
        document.getElementById("cc").value = str_json;
        return true;
    }
</script>

<input type="text" id="aa"/>
<input type="text" id="bb"/>
<form method="POST" onsubmit="return sub()">
    {% csrf_token %}
    <input type="hidden" name="data" id="cc"/>
    <input type="submit" value="提交"/>
</form>

后端views.py中:

def login(request):
    if request.method == 'POST':
        print(request.POST['data'])
        result = json.loads(request.POST['data'])
        print(result['a'])


我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其实我是一个程序员

猜你喜欢

转载自blog.csdn.net/bobyuan888/article/details/80428417