页不在具有Cherrypy的基目录中时出现意外的查询字符串参数错误

2024-03-28 14:19:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在使用cherrypy创建一个网站,当试图打开一个包含url http://localhost:8080/protected/my_page.html?pk=3e4e285c-ed33-403e-a7a1-6b79b5f8356d的查询字符串的页面时遇到了一个错误,我得到了一个错误:

Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\cherrypy\_cprequest.py", line 670, in respond
    response.body = self.handler()
  File "C:\Python27\lib\site-packages\cherrypy\lib\encoding.py", line 221, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "C:\Python27\lib\site-packages\cherrypy\_cpdispatch.py", line 66, in __call__
    raise sys.exc_info()[1]
HTTPError: (404, 'Unexpected query string parameters: pk')

我当前将此页托管在需要身份验证的/protected/目录中。但是,如果我将页面的副本移回我的根目录(/wwwroot),然后尝试加载完全相同的url(除了/protected/)http://localhost:8080/my_page.html?pk=3e4e285c-ed33-403e-a7a1-6b79b5f8356d我的页面加载成功,并且所有字段都填充了与查询匹配的数据。但这样一来,任何人都可以访问该页面,而不需要进行身份验证。

页面当前应该加载,如果查询字符串在url中,它应该从这行python代码pk = context.get("pk", default = "")中获取值,然后使用cx峎Oracle python模块和pk变量进行数据库查找,以找到要显示在页面上的匹配记录。我试图从我的页面中注释掉pk变量赋值,看看它是否可以工作,但我收到了同样的错误。

除了将页面移动到我的基本目录以使其正常工作外,还有人知道如何解决这个错误吗?


Tags: inpyurllibpackages错误linesite