Django 瀑布流图片显示实现
展示页面分为4列,通过瀑布流的方式进行显示,鼠标滚轮滚到页面最下方的时候,再次展示新的图片(由于测试图片少,反复进行显示)
URL:
urlpatterns = [ path('admin/', admin.site.urls), path('img/', views.img), path('get_imgs/', views.get_imgs),
models:
class Img(models.Model): src = models.FileField(max_length=32, verbose_name='图片路径', upload_to='static/upload') title = models.CharField(max_length=32, 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): return render(request, 'img.html')def get_imgs(request): # 从前台获取nid nid = request.GET.get('nid') # 筛选图片列表,这里筛选了大于nid的图片 img_list = models.Img.objects.filter(id__gt=nid).values('id', 'src', 'title') # 将筛选结果变为了list img_list = list(img_list) ret = { 'status': True, 'data': img_list } # 返回json格式的ret,给前台的ajax return JsonResponse(ret)
template:
这里最主要的就是ajax和JavaScript的代码,需要定义一个类似于类的函数,将需要使用的变量包裹进入
最需要注意的就是this的使用,在函数嵌套中,this的含义不同,需要进行转化
Title 美食