gpt4 book ai didi

python - Web2py 票证无效链接

转载 作者:太空狗 更新时间:2023-10-30 03:07:43 24 4
gpt4 key购买 nike

前几天我为了一个新项目开始使用 web2py。我真的很喜欢这个结构和整个概念,在使用了几年 PHP 框架之后感觉就像呼吸了新鲜空气。

唯一(目前)困扰我的是票务系统。每次我犯错时,都会显示一个带有票证链接的页面。如果链接有效,我想我可以接受。它目前指向一个以 http 作为协议(protocol)而不是 https 的管理页面。我读了一些书,admin 的强制 https 似乎是一种安全措施,但这让调试变得很痛苦。

这里的标准解决方案是什么?更改错误页面,允许管理员使用 http och 使用日志进行调试?

最好的问候弗雷德里克

最佳答案

我和你在同一条船上,我不喜欢默认机制。幸运的是,使用 web2py 自定义异常处理非常简单。查看 web2py 目录根目录中的 routes.py。我已将以下内容添加到我的:

routes_onerror = [('application_name/*','/application_name/error/index')]

这会将所有异常路由到我的错误处理程序 Controller (application_name/controllers/error.py),我在其中将 def 索引定义为:

def index():
if request.vars.code == '400':
return(dict(app=request.application,
ticket=None,
traceback="A 400 error was raised, this is controller/method path not found",
code=None,
layer=None,
wasEmailed=False))
elif request.vars.code == '404':
return(dict(app=request.application,
ticket=None,
traceback="A 404 error was raised, this is bad.",
code=None,
layer=None,
wasEmailed=False))
else:
fH = file('applications/%s/errors/%s' % (request.application,request.vars.ticket.split("/")[1]))
e = cPickle.load(fH)
fH.close()
__sendEmail(request.application,e['layer'],e['traceback'],e['code'])
return(dict(app=request.application,
ticket=request.vars.ticket,
traceback=e['traceback'],
code=e['code'],
layer=e['layer'],
wasEmailed=True))

如您所见,对于非 400 和 404 错误,我将回溯通过电子邮件发送给自己,然后调用相应的 views/error/index.html。在生产中,这个 View 给出了一个通用的“很抱歉发生了错误,开发人员已收到电子邮件”。在我的开发服务器上,它显示格式化的回溯。

关于python - Web2py 票证无效链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3505582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com