我通常可以在Pycharm“运行”窗口中看到Python回溯。但是,我有一个项目,我没有在“运行”窗口中显示任何Python回溯显示内部服务器错误(见下文):
> /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
> /Users/noname/PycharmProjects/usc/main.py * Running on
> http://127.0.0.1:5000/ (Press CTRL+C to quit)
> 127.0.0.1 - - [06/Jul/2015 15:23:42] "GET / HTTP/1.1" 200 -
> 127.0.0.1 - - [06/Jul/2015 15:23:43] "GET /estimator HTTP/1.1" 200 -
> 127.0.0.1 - - [06/Jul/2015 15:23:44] "GET /estimator/errorform HTTP/1.1" 500 -
最初,我认为我必须不小心改变了一些默认设置并完全丢失了追溯。但是我后来意识到如果我在代码中注入一些任意错误,我仍然会在“运行”窗口中显示回溯。
问题是我知道500服务器错误是由我的一条Python指令引起的,因为如果我按照下面的评论修改指令,我可以让错误消失。我很困惑为什么我得到500服务器错误,但不是任何Python回溯。
以下相关代码段:
@app.route('/estimator/errorform', methods=['GET', 'POST'])
def errorform():
form = ErrorForm()
line = str(open("logs.txt", "r").readlines()[int(file_len("logs.txt"))]).rstrip()
#Server Error disappears if I replace [int(file_len("logs.txt"))] with 1, above
if form.validate_on_submit():
webbrowser.open('mailto:hello@mail.com?subject=Feedback&body=
<insert your message here>. \n\n Logs: %s' % (line))
return render_template('main.html', form=form, show_results=0,page='errorform')
答案 0 :(得分:4)