繁体   English   中英

网址中带有空格的变量(Django)

[英]variables with space in url (django)

我遇到了与:Django中如何通过URL传递带空格的变量相同的问题。 我已经尝试了提到的解决方案,但一切都以“您正在寻找的资源已被删除,名称已更改或暂时不可用”的形式返回。

我正在尝试传递文件名示例:new 3

在urls.py中:

    url(r'^file_up/delete_file/(?P<oname>[0-9A-Za-z\ ]+)/$', 'app.views.delete_file' , name='delete_file'),

在views.py中:

def delete_file(request,fname):
        return render_to_response(
        'app/submission_error.html',
        {'fname':fname,
        },
        context_instance=RequestContext(request)
)

网址:demo.net/file_up/delete_file/new%25203/

谢谢您的帮助

考虑一下; 您是否不得不使用空格? 如果没有,我认为您可能会发现更容易使用模式(和变量)。 破折号或下划线,甚至是正斜杠看起来更清晰,更容易预测。

我也发现了这一点: https : //stackoverflow.com/a/497972/352452引用:

空格字符是不安全的,因为在对URL进行转录或排版或对文字处理程序进行处理时,可能会消失大量空格并且可能会引入无关紧要的空格。

您还可以使用文字%20捕获空间。 不确定。 只是在这里留下了一些想法。

demo.net/file_up/delete_file/new%25203/

该URL是双重编码的。 首先将空格编码为%20 ,然后将%字符编码为%25 Django仅将URL解码一次,因此解码的URL是/file_up/delete_file/new%203/ 您的模式与文字%20不匹配。

如果要demo.net/file_up/delete_file/new%203/空格而不是其他定界符,则应找到该URL的来源,并确保仅对其编码一次: demo.net/file_up/delete_file/new%203/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM