Вытащить и отобразить изображение на сервере: Django - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть URL.

**"/deals/image/"+name**

name - это переменная, которая дает имя изображения.

Количество просмотров этого URL:

def image(request,name = None):
    if name == None:
        name = "3gmjr0kme6_coffee-art.jpg"
    else:
        name = str(name)
    this_directory = settings.PROJECT_ROOT
    url = this_directory+"\\templates\\media\\images\\photos\\"
    full =url+name 
    image_data = open(full, "rb").read()
    return HttpResponse(image_data, mimetype="image/png")

Проблема, с которой я сталкиваюсь, заключается в том, что она не может получить это представление из-за точки "." То есть "/deals/image/some_image.jpg" не может найти представление. Как я могу получить "." или я что-то не так делаю?

файл URL выглядит следующим образом

 url(r'^image/(\w+)$','image'),

Любая помощь будет высоко оценена.

1 Ответ

2 голосов
/ 25 ноября 2011

Измените конфигурацию URL на что-то вроде этого:

url(r'^image/([\w\.]+)$','image')
  • Часть [...] представляет собой набор символов . Он будет соответствовать всем персонажам внутри.
  • \w используется для сопоставления обычных символов (от A до Z и от a до z), цифр и символа подчеркивания "_".
  • \. соответствует буквальной точке.
  • + означает одно или несколько предыдущих выражений.

Когда \w и \. соединены внутри набора символов ([]), он будет соответствовать всем символам и цифрам, а также подчеркиванию и точке. Если поставить + после, это означает, что в наборе должен быть хотя бы один символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...