您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页Django 前后台数据传递方法

Django 前后台数据传递方法

来源:爱问旅游网

所熟悉的Django前后台数据传递的方法有以下几种:

1、后台往前台传数据

最简单的返回一个页面,view代码如下:

def Home(request):
    return render(request,"flow/home.html",locals())

如果要带上一些数据返回到前台:

view代码:

def domain_list(request):
    data = [1,2,3,4,5,6]
    return render(request, 'domain/domain.html', locals())

domain.html接受数据

可以用{{data}}直接在页面显示数据

<div>{{ data }}</div>

也可以对数据进行迭代,比如把数据放到table中显示

{% for x in data %}
<p>{{ x }}</p>
{% end for %}

以上方法后台传过来的数据直接给了在HTML中显示出来,如果数据是传给js用的就用以下方法,注意后台穿过来的数据要处理成json格式:

view部分:

import json
def domain_list(request):
    data = ['hello','world','!']
    data = json.dumps(data) #data必须是一个list
    return render(request, 'domain/domain.html', locals())

HTML的js部分需要接一个safe过滤器:

<script>
    var List = {{ data|safe }};
</script>

2、前台往后台传数据:

前台往后台传数据方法就比较多了

(1)使用ajax动态刷新页面

HTML的js部分:

<div><button type="button" id="testBotton" οnclick="Ssss('{{ x }}')">测试</button></div>

<script language="JavaScript">
    function Ssss(id) {
        var domain_name = id;    //获取要传到后台的数据
        $.ajax({
            type: "GET",
            url: "test/",    //后台处理函数的url
            data: domain_name,
            success: function (result) {  //获取后台处理后传过来的result 
                alert(result)
            },
        });
    }
</script>

后台view部分:

def scene(request):
    if request.method == "GET":
            name = request.GET.get('domain_name')
            print name 
            result = "OK!"
            return HttpResponse(result)

(2)可以将数据直接放到URL里

<script language="JavaScript">
    function Ssss(id) {
        $.ajax({
            type: "GET",
            url: "test/?domain_name="+id,    //后台处理函数的url和数据
            success: function (result) {  //获取后台处理后传过来的result 
                alert(result)
            },
        });
    }
</script>

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务