我前几天开始使用web2py进行新项目。我非常喜欢结构和整个概念,在花了几年的PHP框架之后感觉像是一股清新的空气。
困扰我的唯一(目前)是票务系统。每次我发出错误信息时,都会显示一个带有票证链接的页面。如果链接有效,我想我可以忍受。它目前指向一个管理页面,其中http为协议而不是https。我已经做了一些阅读,强制https for admin似乎是一个安全措施,但这使得调试变得很痛苦。
这里的标准解决方案是什么?更改错误页面,允许http为admin och使用日志进行调试?
祝你好运 弗雷德里克
答案 0 :(得分:4)
我和你在同一条船上,我不喜欢默认机制。幸运的是,使用web2py定制异常处理非常简单。查看web2py目录根目录中的routes.py。我已将以下内容添加到我的:
routes_onerror = [('application_name / *','/ application_name / error / index')]
这会将我的错误处理程序控制器(application_name / controllers / error.py)中的任何异常路由到我将def index索引定义为:
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。在生产中,这个视图给出了一个通用的“我很抱歉发生了错误,开发人员已通过电子邮件发送”。在我的开发服务器上,它显示格式化的回溯。
答案 1 :(得分:0)
通常,我只使用http://127.0.0.1/(如果您是本地或ssh)或使用https:// ...
进行编辑/导航因此,您将第一次登录管理员应用程序,但始终会在之后显示门票。