django的ajax对应前端的瀑布流方法

本文介绍了一个使用HTML、CSS和jQuery实现的学生详情动态加载方案。通过AJAX调用后端接口获取学生信息,并根据返回的数据动态生成包含感谢信及图片的布局。每四个元素为一组进行显示。

html

{% load xx %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

    <div>

    </div>
    <style>
        .clearfix:after{
            content: '.';
            visibility: hidden;
            height: 0;
            clear: both;
            display: block;
        }
        .c1{
            width: 245px;
        }
        .c1 img{
            width: 245px;
            height: 200px;
        }
    </style>

    <div id="container" style="margin: 0 auto;width: 980px;" class="clearfix">

        <div style="width: 245px;float: left">

        </div>

        <div style="width: 245px;float: left">

        </div>

        <div style="width: 245px;float: left">


        </div>

        <div style="width: 245px;float: left">


        </div>
    </div>

    <script src="/static/js/jquery-2.1.4.min.js"></script>
    <script>
        $(function () {
            $.ajax({
                url: '/student1/',
                type: 'POST',
                dataType: 'json',
                success: function (arg) {
                    //arg = JSON.parse(arg);
                    // arg = JSON.stringify(arg)
                    $.each(arg, function (k,v) {
                        k = k + 1;
                        var div = document.createElement('div');
                        div.className = 'c1';
                        var img = document.createElement('img');
                        img.src = "/" + v.student__pic;
                        var p = document.createElement('p');
                        p.innerText =  v.letter_of_thanks;
                        div.appendChild(img);
                        div.appendChild(p);
                        if(k%4 == 1){
                            $('#container').children(':eq(0)').append(div);
                        }else if(k%4 == 2){
                            $('#container').children(':eq(1)').append(div);
                        }else if(k%4 == 3){
                            $('#container').children(':eq(2)').append(div);
                        }else if(k%4 == 0){
                            $('#container').children(':eq(3)').append(div);
                        }else{

                        }
                    })
                }
            })
        })
    </script>
</body>
</html>
html

 

views

def student1(request):

    if request.method == 'POST':
        detail_list = models.StudentDetail.objects.filter(student__status=1).values('letter_of_thanks', "student__name",
                                                                                    "student__salary",
                                                                                    'student__company', 'student__pic')
        detail_list = list(detail_list)
        return HttpResponse(json.dumps(detail_list))
    # student
    # studentDetail
    # detail_list = models.StudentDetail.objects.filter(student__status=1).values('letter_of_thanks',"student__name","student__salary",'student__company', 'student__pic')
    return render(request,'student1.html')
views

 

转载于:https://www.cnblogs.com/renfanzi/p/5840164.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值