在服务器上拉动并显示图像:Django

时间:2011-11-25 07:52:02

标签: django django-views django-urls

我有一个网址。

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

name是一个给出图像名称的变量。

迎合此网址的观点是

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”无法找到该视图。我怎么能说出“。”?或者我做错了什么?

urls文件如下

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

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

将URL配置更改为以下内容:

url(r'^image/([\w\.]+)$','image')
  • [...]部分是字符集。它将匹配里面的所有字符。
  • \w用于匹配普通字符(A到Z和a到z),数字和下划线“_”。
  • \.与文字点匹配。
  • +表示前一个表达式中的一个或多个。

\w\.放在一个字符集([])中时,它将匹配所有字符和数字,以及下划线和点。将+放在后面意味着集合中必须至少有一个字符。