サーバ上で画像を引っ張って表示する:Django

私は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"はそのビューを見つけることができません。どのように私は "。"のためにaccoutすることができますか?または私は何か間違っているのですか?

urlsファイルは次のとおりです

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

どんな助力も高く評価されます。

3
Python(したがってDjango)で使用される正規表現は、例えば Pythonのホームページをご覧ください。
追加された 著者 Some programmer dude,
これはdjangoproject.comで非常によく説明されています。あなたがそこでそれを理解していない場合、どうやって理解することができますか?
追加された 著者 vikingosegundo,

1 答え

URLの設定を次のように変更します。

url(r'^image/([\w\.]+)$','image')
  • [...] の部分は文字セットです。内部のすべての文字と一致します。
  • \ w は、通常の文字(A〜Zとa〜z)、数字、およびアンダースコア "_"を一致させるために使用されます。
  • \。はリテラルドットと一致します。
  • + は前の式の1つ以上を意味します。

文字セット( [] )の中に \ w \。を入れても、すべての文字と数字に一致しますアンダースコアとドットとして。 + を後ろに置くとは、セットに少なくとも1文字ある必要があることを意味します。

2
追加された
私の失礼なコメントを申し訳ありません。私はしばらくの間問題に悩まされていました。あなたの助けに感謝します。しかし、私はそれを理解しようとしたことを安心しています。
追加された 著者 Akamad007,