2010-07-12 107 views
0

自从我在这里的最后一个问题:Python images displayPython的图像显示的Django

我了解,从所有的答案,我得到了glob.glob可能是我所需要的方向只有一个。

然而,当我坚持现在的问题是在这里:

我可以用glob.glob建立在我的媒体目录中的所有文件名的列表:

all = glob.glob("/Path_to_MEDIA/*/*.jpg") 

但我怎么能使用并创建一个非常简单的图像显示与一个下一个按钮,调用MEDIA_ROOT中的文件并显示它们。

我所知道的是:

  1. 我有一个模板,看起来像默认的目录索引:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
        <head> 
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
        <meta http-equiv="Content-Language" content="en-us" /> 
        <meta name="robots" content="NONE,NOARCHIVE" /> 
        <title>Index of {{ directory }}</title> 
        </head> 
        <body> 
        <h1>Index of {{ directory }}</h1> 
        <ul> 
         {% ifnotequal directory "/" %} 
         <li><a href="../">../</a></li> 
         {% endifnotequal %} 
         {% for f in file_list %} 
         <li><a href="{{ f|urlencode }}">{{ f }}</a></li> 
         {% endfor %} 
        </ul> 
        </body> 
    </html> 
    
  2. 我需要在我的意见,以创建一个高清哺养名单从glob.glob到这个或类似的模板。

我不知道是什么:

  • 这怎么高清视图已经到什么样子的?

在这里:

  • 我有什么写,以显示在浏览器中的一个图像,声音?
  • 我必须写什么来显示图像列表,声音?

谢谢你的时间!

回答

0

请直接到模板URL额外上下文在urls.py:

from django.views.generic.simple import direct_to_template 
... 
url(r'^whatever', direct_to_template, 
       { 'template':'foo.html', 'extra_context': {'files':myfiles} } 
       name='whatever'), 

myfiles的上述是你的文件的列表/元组。但是,请确保根据MEDIA_URL而不是基于MEDIA_PATH格式化文件列表。例如:

myfiles = [ 'relative/path/foo.jpg', 
      'http://static.mysite.com/absolute/path/bar.jpg' ] 

虽然,显然是从您的文件系统生成的,而不是硬编码列表。你可以做一个视图中的工作,而不是使用直接对模板 - 只要确保把文件键/值到您的上下文:

def myview(request ...): 
    context = RequestContext(request) 
    context[files]=myfiles 
    return render_to_respone(..., context_instance=context) 

然后,在你的模板foo.html

{% for file in files %} 
    <img src='YOUR_MEDIA_URL_HERE/{{ file }}' /> 
{% endfor %} 
+0

谢谢!有趣。 myfiles指定在哪里?在View,model中的Model.py,views.py,def中? – MacPython 2010-07-12 13:21:05

+0

顶部的块在urls.py中,所以myfiles也可以从那里填充。我这样做的博客,其中的“顶级故事”计算在那里,因为他们在多个视图之间共享。然而,你可以把它放在别的地方并在那里打电话。或者,如果你喜欢,你可以编写你自己的视图,而不是做通用视图的事情,只要确保将文件键/值添加到你的上下文。 – eruciform 2010-07-12 14:23:39