Django URL模式包含#

Ste*_*ley 1 python django url-pattern

我在获取URL模式时遇到问题.

URL的格式如下:

/API#access_token=<string>&expires_in=<timestamp>
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法更改#access_token =&expires_in = part,因为这超出了我的控制范围,我只需要让我的代码工作.

我尝试了许多不同的模式,其中一些概述如下.这是我的第一个Django项目,任何建议和指针都会非常感激.

url(r'^API#access_token=(?P<token_info>\w+)&expires_in(?P<time>\d+)$'
url(r'^API#(?P<tokens>\w+)$'
url(r'^API/#(?P<tokens>\w+)&(?P<expiration>\d+)$'
Run Code Online (Sandbox Code Playgroud)

Fiv*_*ver 5

问题是,锚点#(也称为片段标识符)不会被浏览器发送到服务器.正则表达式无法捕捉不存在的东西.来自维基百科关于片段标识符的文章:

片段标识符的功能与URI的其余部分不同:即,它的处理完全是客户端的,没有Web服务器的参与 - 当然,服务器通常有助于确定MIME类型,MIME类型确定片段的处理.当代理(例如Web浏览器)从Web服务器请求Web资源时,代理会将URI发送到服务器,但不会发送该片段.相反,代理等待服务器发送资源,然后代理根据文档类型和片段值处理资源.

解决这个问题的唯一方法是在客户端的JavaScript中解析片段,并将其作为单独的异步请求发送.对于GET请求,您可以将片段作为查询参数发送(在剥离散列之后)或将其作为自定义值放入标头中.