瀑布流方式一

这种方式,是后端先从数据库取出图片数据,将图片的地址,简介,抬头在后端整理成Queryset格式,然后直接发到前段,前段拿到数据直接for循环即可

url文件

from django.contrib import admin
from django.urls import path
from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('img.html/', views.img),
]

models文件

class Img(models.Model):
    src = models.FileField(max_length=32,verbose_name='图片路径',upload_to='static/upload')
    title = models.CharField(max_length=16,verbose_name='标题')
    summary = models.CharField(max_length=128,verbose_name='简介')

    class Meta:
        verbose_name_plural = '图片表'

    def __str__(self):
        return self.title

views文件-----重点

def img(request):
    img_list = models.Img.objects.all()  #获取数据库素有有对象,不过这个好像前段用不到
    img_list_src = models.Img.objects.values('src','title')  #获取数据库的中数据
    num = img_list.count()   #数据库中总的数据的条数

    d1=img_list_src[0:num:4]  #运用字典切片取值,每从[0]位置开始取,每隔4个取一次
    d2=img_list_src[1:num:4]
    d3=img_list_src[2:num:4]
    d4=img_list_src[3:num:4]

    return render(request,'img.html',{'img_list':img_list,"d1":d1,"d2":d2,'d3':d3,'d4':d4,"img_list_src": img_list_src})

html文件--前端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .w{
            width: 1000px;
            margin: 0 auto;
        }
        .item{
            width: 25%;
            float: left;
        }
        .item img{
            width: 100%;
        }
    </style>
</head>
<body>

<div>风景图片</div>
<div class="w">

    <div class="item">
        {% for item in d1 %}
            <img src="/{{ item.src }}" alt="">
            <div>{{ item.title }}</div>
        {% endfor %}
    </div>

    <div class="item">
        {% for item in d2 %}
            <img src="/{{ item.src }}" alt="">
            <div>{{ item.title }}</div>
        {% endfor %}
    </div>

    <div class="item">
        {% for item in d3 %}
            <img src="/{{ item.src }}" alt="">
            <div>{{ item.title }}</div>
        {% endfor %}

    </div>
    <div class="item">
        {% for item in d4 %}
            <img src="/{{ item.src }}" alt="">
            <div>{{ item.title }}</div>
        {% endfor %}
    </div>




</div>

</body>
</html>
原文地址:https://www.cnblogs.com/lhqlhq/p/9209798.html