Django - urls.py - 带有哈希/磅(#)符号的文件名?

miy*_*iya 4 python regex django

我正在使用django并意识到当用户想要访问的文件名(假设是一张照片)有英镑符号时,url.py中的条目不匹配.

有任何想法吗?

    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':
    MEDIA_ROOT},
Run Code Online (Sandbox Code Playgroud)

它只是说:

"/home/user/project/static/upload/images/hello" does not exist
Run Code Online (Sandbox Code Playgroud)

实际上文件的名称是:

hello#world.jpg
Run Code Online (Sandbox Code Playgroud)

谢谢,尼科

Lan*_*ney 10

这实际上不是Django的错 - URL中的井号(#)表示在页面上加载指定的锚点.您需要在URL中对井号进行编码,以使浏览器请求完整的图像路径:

/home/user/project/static/upload/images/hello%23world.jpg
Run Code Online (Sandbox Code Playgroud)

在Django模板中,您可以使用urlencode模板标记.

  • 只是添加:浏览器不会从井号(#)向前发送任何内容到服务器,这就是你需要对其进行编码的原因. (5认同)