Django --图片瀑布流布局+动态的渲染

本文介绍了Django中实现图片瀑布流布局的方法,包括布局原理、数据库创建、视图函数和模板渲染。通过设置固定宽度的div,根据图片索引下标分配到相应列,利用ajax监听滚动加载更多图片,实现动态加载效果。
摘要由CSDN通过智能技术生成

1. 瀑布流布局原理

在前端页面布局中,图片放置时存在图片宽度、长度大小不一的情况,在不调整图片大小成一致的情况下,选择瀑布流布局是很好的解决图片能紧致放置的一种办法。瀑布流如何解决这个问题呢?

  1. 设置页面div宽度为固定宽度;
  2. 将页面根据图片排列多少列分成相应的div个数,同时设置div的宽度为固定宽度,可以一样,也可以设置为不同。
  3. 从后台数据库中拿到图片链接,然后图片的索引下标求余图片列数(index%col)然后将图片对应放入相应的div中。
  4. 然后监听鼠标滚轮移动到屏幕最下端通过ajax自动加载图片,从而实现图片自动加载和瀑布流布局。

2. 具体实现过程

2.1 图片数据库创建

创建一个表用来存放图片的链接,标题,简介。(后续通过scrapy爬取图片信息自动存入数据库中)

# 创建图片表
class Img(models.Model):
    src = models.CharField(max_length=256, verbose_name="图片链接") 	# 图片链接
    title = models.CharField(max_length=32, verbose_name="图片标题")	# 图片标题
    intro = models.CharField(max_length=32, verbose_name="简介")		# 图片简介
    add_time = models.DateTimeField(verbose_name="添加时间", auto_now_add=True)

    #def __str__(self):
        #return self.title   

2.2 视图函数

通过模板中传入的ajax数据请求进行处理然后传入到模板中进行渲染。

# 导入模块
from django.shortcuts import render, redirect
from django.http import HttpResponse
from pbl.models import Img
import json

# 图片显示
def index(request):
    img_obj_list = Img.objects.all()
    return render(request, "pbl/index.html", context={
   "img_obj_list": img_obj_list})

#添加图片信息
def add_img(request):
    if request.method == "GET":
        return render(request
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值