Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django URL模式包括#_Python_Django_Url Pattern - Fatal编程技术网

Python Django URL模式包括#

Python Django URL模式包括#,python,django,url-pattern,Python,Django,Url Pattern,我在使用URL模式时遇到问题 URL的格式如下所示: /API#access_token=<string>&expires_in=<timestamp> /API\access\u token=&expires\u in= 不幸的是,我无法更改#access_token=&expires_in=部分,因为这超出了我的控制范围,我只需要让我的代码正常工作 我尝试了许多不同的模式,下面列出了其中的一些。这是我的第一个Django项目,任何建议和指点都将不胜感激 u

我在使用URL模式时遇到问题

URL的格式如下所示:

/API#access_token=<string>&expires_in=<timestamp>
/API\access\u token=&expires\u in=
不幸的是,我无法更改#access_token=&expires_in=部分,因为这超出了我的控制范围,我只需要让我的代码正常工作

我尝试了许多不同的模式,下面列出了其中的一些。这是我的第一个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+)$'
url(r'^API#access_token=(?P\w+)&expires_in(?P\d+)$)
url(r'^API#(?P\w+)$)
url(r'^API/#(?P\w+&(?P\d+)$)

问题在于,锚定
#
(也称为片段标识符)未通过浏览器发送到服务器。正则表达式无法捕获不存在的内容。从:

片段标识符的功能不同于代码的其余部分 URI:也就是说,它的处理完全是客户端的,没有 来自web服务器的参与-当然,服务器通常 帮助确定MIME类型,MIME类型确定 处理片段。当代理(如Web浏览器)运行时 从web服务器请求web资源,代理将URI发送到 服务器,但不发送片段。相反,代理等待 让服务器发送资源,然后代理处理 根据文档类型和片段值创建资源


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

你确定你没有将
混合起来吗?
混合起来?@Andrew_Lvov肯定没有混合起来#有没有办法让浏览器在加载HTML后将其发送回服务器?即,首先加载页面,浏览器读取URL,然后将片段发送回服务器?是的,你可以解析客户端并发送一个单独的AJAX请求。