Django 图片显示

1 投票
2 回答
987 浏览
提问于 2025-04-16 01:24

好的,现在我知道如何在Django中通过一个链接(/myurl/)显示图片列表了(太棒了!)

但是,我想知道如何在每个链接上显示一张图片,并且有一个按钮可以点击查看下一张图片等等。

简单来说,我希望能先访问第一个链接(/urlstart/):

这里有一些文字和一个“下一步”按钮。

点击这个按钮后,用户会被带到例如 /urlstart/1

在这个页面上,会显示列表中的第一张图片,下面还有一个按钮。

这个按钮会把用户带到 /urlstart/2

在这里,会显示列表中的下一张图片。

依此类推。

那么,url.py中的正则部分应该怎么写才能实现这个功能呢?

视图(view)又需要怎么调整,才能从一组图片中生成多个链接呢?

最后,如果有人已经实现过这个功能,并且有可以下载和安装的模块或库,比如说photologue(可惜我试过没成功),或者有什么更好的主意,我会非常高兴能得到一些关于如何快速高效实现这个功能的建议。

非常感谢每一个花时间来回答的人!

2 个回答

0

可以看看这个关于分页的文档,它会教你如何添加“下一页”和“上一页”的链接等功能。

另外,使用永久链接也是个不错的主意,这样你可以从视图中传递下一张或上一张图片,而不是把网址直接写死在模板里。

2

URL的正则表达式可能长这样:

url(r'^urlstart/(?P<image_id>\d*)/?$', 'urlstart', name='urlstart')

视图代码可能长这样:

def urlstart(request, image_id=0):
  if image_id == 0:
    image = None
  else:
    image = get_object_or_404(Image, image_id)
  next_image = image_id + 1

  return render_to_response('template.html', locals(), context_instance=RequestContext(request)

模板代码:

{% if image %}
  <img src={{ image.url }}>
  <a href="/urlstart/{{ next_image }}">Next</a>
{% else %}
  Put your text here.  See first image by clicking <a href="/urlstart/1">here</a>
{% endif %}

显然,这只是一个简单的例子。比如,你可能还想检查一下接下来是否有图片。

希望这对你有帮助。

撰写回答