使用像jsbin这样的哈希处理网址

时间:2013-05-14 15:29:46

标签: python regex django url django-urls

jsbin,在不支持(window.history && window.history.pushState)的浏览器上,通过window.location.hash = data.edit;details here)修改网址。

这会创建像这样的网址

http://jsbin.com/#/imetor/1/edit

如何让django的urls.py处理这样的网址? I am not even sure that the hash is being sent to the server。如果它没有被发送到服务器,那么jsbin用于将这些参数传递给服务器的技术是什么?

FWIW,这不起作用:

url(r'^#/(?P<project_id>[0-9A-Za-z]{6,})', 'mysite.views.project_hash', name='project_hash'),

1 个答案:

答案 0 :(得分:1)

你是对的。超过#的部分不会被发送到服务器。

在django中,如果要查看发送到服务器的URL,可以执行

print request.get_full_path()

在jsbin的情况下,服务器返回一个包含javascript代码的页面,然后读取url参数并执行代码以个性化页面。解析url并执行函数的javascript代码示例是Backbone.Router(http://backbonejs.org/#Router)。