Краткая версия:
Я хочу убрать URL-адреса изображений из выходных данных вызова render_to_response и заменить их локально кэшированной копией (создавая ее, если она не существует).У меня есть идея реализации, но кажется, что каждый мужчина и его жена делали это раньше, поэтому я не хочу тратить свое время, когда я мог бы использовать версию, которая проверена и протестирована.
Почему:
Я занимаюсь разработкой клиента синдикации с использованием django для своей серверной части (я собираюсь сделать версию для браузера, чтобы облегчить переход).Теперь для мобильных и настольных версий моего клиента я хочу иметь возможность просматривать каналы в автономном режиме , например, в длительном путешествии по трубе.Я полагаю, что это будет похоже на версию Instapaper .
для канала. Мое решение:
В моей базе данных есть таблица, содержащая URL-адрес изображения, время последнего обновления иImageField.Предполагается, что каждый раз, когда я сталкиваюсь с URL-адресом изображения, я просматриваю его в этой таблице (это будет основной индекс).
try:
img = Image.objects.get(url=image_url)
except Image.DoesNotExist:
img = Image(url=image_url, image=standard_placeholder)
img.save()
if not img.last_updated or too_long_ago(img.last_updated):
try:
new_image = File(open(urllib.urlretreive())[0])
img.image.save(md5(img.url),new_image)
img.update()
except:
pass
return img.image
Тогда все , что мне нужно сделать, это заменитьизображения из render_to_response с изображениями, приведенными здесь.
Проблемы, которые я уже заметил:
Я не совсем уверен, как я собирался найти все URL-адреса изображений.аргумент src для тега изображения должен быть достаточно простым и охватывать большинство случаев, но есть ли другие методы, которые были бы более надежными и менее дырявыми?