如何让 Django urls.py 识别 url 中的 # (hash)?
Posted
技术标签:
【中文标题】如何让 Django urls.py 识别 url 中的 # (hash)?【英文标题】:How to get Django urls.py to recognize # (hash) in url? 【发布时间】:2012-02-14 11:33:29 【问题描述】:假设我希望通过urls.py
将以下网址与 django 视图匹配:www.mysite.com/cake/#vanilla
在urls.py
我有这样的东西:
url('^cake/#.*/$', app.views.view ),
所以基本上我希望所有以 root:www.mysite.com/cake/#
开头的 url 都由这个视图处理。但是,django urls 似乎将 # 视为 %23,因此所有具有根 www.mysite.com/cake/%23
的 url 都由该视图处理。如何获取 url('^cake/#.*/$', app.views.view )
中的井号,将其视为实际井号而不是 %23?
感谢您的帮助!
【问题讨论】:
不能做。哈希不会发送到服务器。 这里有一个 SO 问题更详细地解释了这一点:***.com/questions/3664257/… 【参考方案1】:您需要强制您的用户使用 winetricks 的 IE7。它是唯一存在在 HTTP 请求中发送哈希和内容的错误的浏览器 :)
如果已经修复,那么你需要强制你的用户使用去年版本的 winetricks 中的 IE7。
正如亚当所说,浏览器应该不将哈希部分发送到服务器。在 url 中使用哈希对于 deezer 之类的网站很常见,因为它可以让用户在不重新加载页面的情况下导航(所有导航都在 javascript 中处理)。这允许在不中断/重新加载 Flash 中的音乐播放器的情况下进行导航。
如果你想启用哈希浏览,那么你可以使用这样的插件:http://tkyk.github.com/jquery-history-plugin/
【讨论】:
以上是关于如何让 Django urls.py 识别 url 中的 # (hash)?的主要内容,如果未能解决你的问题,请参考以下文章
django-hosts 强制重新加载不同的 urls.py
Django 和 urls.py:如何通过命名 url 进行 HttpResponseRedirect?
如何在 Django 中使用来自 urls.py 的变量重定向 url 模式?