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>

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值