【问题标题】:Django Images DisplayDjango 图像显示
【发布时间】:2011-03-17 00:20:53
【问题描述】:

好的,现在我知道如何在 Django 中的一个 /myurl/ 上显示图像作为列表(是的!)

但是我怎样才能在每个网址上显示一个图像,并带有一个按钮来点击下一个图像等。

所以基本上我想来第一个/urlstart/:

文本和下一步按钮。

将用户带到例如/urlstart/1

那里显示了列表的第一张图片,下方是一个按钮。

这会将用户带到 /urlstart/2

此处显示列表的下一张图片。

等等

url.py 正则表达式部分的外观如何才能做到这一点? 如何调整视图以获得 1 个图像列表但多个 url?

最后,如果有人使用可下载和可安装的模块/库实现了这一点,例如photologue(不幸的是,这对我不起作用)或任何比这更好的想法,我真的很高兴能获得一些关于如何快速高效地进行的见解。

非常感谢所有花时间回答的人!

【问题讨论】:

    标签: python django url


    【解决方案1】:

    网址正则表达式可能如下所示:

    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 %}
    

    显然这是简化的。例如,您可能想查看下一个是否有图像。

    希望这会有所帮助。

    【讨论】:

    • 你应该使用 {% url %} 模板标签来避免在你的模板中硬编码 url。
    • 谢谢一百万。这太棒了,我会立即尝试。现在一个问题。正则表达式部分 (?P\d*)/?$ 必须更改为适合,或者如果我在下面使用您的代码,它会起作用吗?
    • 另一个问题,我在哪里提到我的图片在硬盘上的位置?
    • 所以我尝试了 2 件我不理解/无法工作的事情: 1. 我在哪里存储图像以便 Django 可以读取它们?我是否将它们命名为 0.jpg、1.gif、2.png 等以获得正确的 image_id? 2. 正则表达式部分:开头有“url”。我从来没有见过这样的正则表达式。通常它们以“(”开头。即使我收到错误消息,似乎正则表达式也是正确的。开头的网址到底是什么意思?
    • MacPython,查看 Django 文档:docs.djangoproject.com/en/1.2 特别是,查看 docs.djangoproject.com/en/1.2/topics/http/urls/… 获取 URL。
    【解决方案2】:

    查看Pagination,它将为您提供下一个/上一个链接等。

    此外,使用permalinks 并从视图中传递下一张/上一张图片而不是将 URL 硬编码到模板中可能是个好主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-16
      • 2021-12-07
      • 2014-01-17
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多