Изображения Python отображают Django - PullRequest
0 голосов
/ 12 июля 2010

Так как мой последний вопрос здесь: Отображение изображений Python

Я понял, что из всех полученных ответов, 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. Мне нужно создать def в моих представлениях, который передает список из glob.glob в этот или подобный шаблон.

Что я не знаю:

  • Как должно выглядеть это определение в представлении?

И здесь:

  • Что мне нужно написать, чтобы отобразить одно изображение, звук в браузере?
  • Что мне делать?Нужно написать, чтобы отобразить список изображений, звуков?

Спасибо за время!

1 Ответ

0 голосов
/ 12 июля 2010

Создайте ссылку на шаблон прямо в контексте в 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...