python - 匹配 URL 中的点时出现奇怪的 Django 行为

标签 python django django-urls

如果我有以下网址配置:

urlpatterns = patterns('',
    url(r'^projects-json$', 'projects.views.list'),
)

我转到 /projects-json URL 解析得很好。请注意,末尾没有斜杠。

但是我想在 URL 中使用点,而不是连字符,所以我以这种方式重写 url conf:

urlpatterns = patterns('',
    url(r'^projects\.json$', 'projects.views.list'),
)

现在,如果我转到 /projects.json 我会被重定向到 /projects.json/ 并得到 404 作为结果!如果我在 url 模式中添加尾部斜杠,我将在带有尾部斜杠的 URL 处得到 OK 响应。但我只想要一件简单的事情:匹配 /projects.json 而不需要任何重定向和斜杠。 Django 能做到吗?我为这个原始问题浪费了很多时间。有人能发现错误吗?

settings.APPEND_SLASH = False。不过看起来好像并不重要。以防万一它可能很重要:

MEDIA_ROOT = ''
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/admin-media/'

最佳答案

对我来说效果很好(APPEND_SLASH = False)。可能是浏览器问题,某些浏览器(例如Firefox)缓存了重定向,因此在服务器上根本没有重定向后它会重定向您。在其他浏览器中尝试一下。

关于python - 匹配 URL 中的点时出现奇怪的 Django 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9277818/

相关文章:

python - 如何使用 Reportlab 在单个段落中的行之间添加空格

python - 我的 Python 安装应使用哪个版本的 Pip?

python - 匹配Django中所有没有前缀的url

django - 如何将 URL 参数传递给 django CBV?

python - 在 numpy ndarray 中查找列表的长度

python - 排除 for 循环中的项目

python - 如何在 order_by 之后获取结果在列表中的位置?

python - 修复使用 Ajax 从 Django Form 发送数据时出现 "missing 1 required positional argument: ' id'"错误

python - SQLAlchemy 查询与多列元组上的比较

python - Django 测试 - 在所有测试中修补对象