Python url中有空格的变量(django)

Python url中有空格的变量(django),python,django,url,django-urls,Python,Django,Url,Django Urls,我和你有同样的问题。我尝试了上述解决方案,但一切都返回为“您正在寻找的资源已被删除,名称已更改,或暂时不可用。” 我试图传递一个文件名示例:new3 在URL.py中: url(r'^file_up/delete_file/(?P<oname>[0-9A-Za-z\ ]+)/$', 'app.views.delete_file' , name='delete_file'), url:demo.net/file\u up/delete\u file/new%25203/ 感谢

我和你有同样的问题。我尝试了上述解决方案,但一切都返回为“您正在寻找的资源已被删除,名称已更改,或暂时不可用。”

我试图传递一个文件名示例:new3

在URL.py中:

    url(r'^file_up/delete_file/(?P<oname>[0-9A-Za-z\ ]+)/$', 'app.views.delete_file' , name='delete_file'),
url:demo.net/file\u up/delete\u file/new%25203/


感谢您的帮助

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

我还发现:其中引用了:

空格字符是不安全的,因为当URL被转录、排版或接受字处理程序处理时,重要空格可能消失,而不重要空格可能被引入

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

demo.net/file_up/delete_file/new%25203/
此URL是双重编码的。首先将空格编码为
%20
,然后将
%
字符编码为
%25
。Django只对URL解码一次,因此解码的URL是
/file\u up/delete\u file/new%203/
。您的模式与文本
%20
不匹配


如果您想使用空格而不是其他分隔符,您应该找到该URL的来源,并确保它只编码一次:
demo.net/file\up/delete\file/new%203/

为什么需要将其包含在URL中?对我来说,文件(名称)听起来像post数据
demo.net/file_up/delete_file/new%25203/