Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 28, 2009 03:20:47

ph0en1x
От:
Зарегистрирован: 2009-11-28
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Image API

Простите если вопрос слишком лёгким покажеться я только новичёк :)



Картинка отдаёться следующим образом:

class Image (webapp.RequestHandler):
def get(self):
greeting = db.get(self.request.get("img_id"))
if greeting.avatar:
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(greeting.avatar)
else:
self.error(404)
Вопрос скорее касаеться не самого апи, а работы с GET.
Исходя из стандартного примера на аппспот мы получаем адрес картинки /img?img_id=agZkZXYtZGJyDwsSCEdyZWV0aW5nGIsnDA

можно сделать что бы адрес был /img/agZkZXYtZGJyDwsSCEdyZWV0aW5nGIsnDA.png ??
Хотелось бы именно адреса с окончанием *.png



Отредактировано (Ноя. 28, 2009 03:22:03)

Офлайн

#2 Ноя. 28, 2009 22:24:55

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Image API

В application request handlers задаются как regexp, получившиеся при разборе группы попадают в обработчики get/post/…

class Image (webapp.RequestHandler):
def get(self, img_id):
# get image and fill self.response

application = webapp.WSGIApplication([
# ...
(r'/img/(\w+)\.png', Image),
])



Отредактировано (Ноя. 28, 2009 22:26:14)

Офлайн

#3 Ноя. 28, 2009 23:43:37

ph0en1x
От:
Зарегистрирован: 2009-11-28
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Image API

class Images (webapp.RequestHandler):
def get(self, imgs_id):
greeting = db.get(self.request.get("imgs_id"))
if greeting.fullsize:
self.response.headers['Content-Type'] = "image/jpeg"
self.response.out.write(greeting.fullsize)
else:
self.response.out.write("No image")

application = webapp.WSGIApplication(
[('/', MainPage),
('/sign', Guestbook),
('/img', Image),
(r'/imgs_id/(\w+)\.jpg', Images),
('/add', AddNews)],
debug=True)
def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()
В шаблоне отображаю вот так:
{% for greeting in greetings %}
<a class="zoom" rel="group" title="{{ greeting.title }}" href="imgs_id/{{ greeting.key }}.jpg"><img src="img?img_id={{ greeting.key }}" alt="" /></a>
{% endfor %}
/imgs_id/agZkZXYtZGJyDwsSCEdyZWV0aW5nGNk2DA.jpg - 404 ошибка:
Error: Not Found

The requested URL /imgs_id/agZkZXYtZGJyDwsSCEdyZWV0aW5nGIsnDA.jpg was not found on this server.
Хотя если пользоваться img?img_id=agZkZXYtZGJyDwsSCEdyZWV0aW5nGNk2DA - всё ок

В чём я ошибся?



Отредактировано (Ноя. 28, 2009 23:46:41)

Офлайн

#4 Ноя. 29, 2009 03:42:56

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Image API

 greeting = db.get(self.request.get("imgs_id"))
при /imgs_id/agZkZXYtZGJyDwsSCEdyZWV0aW5nGIsnDA.jpg ты ж ?img_id не передаёшь

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version