对于导致500 Server Error的错误,Python tracebacks不可见

时间:2015-07-06 14:39:34

标签: python flask pycharm traceback

我通常可以在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')

1 个答案:

答案 0 :(得分:4)

尝试将debug = True设置为您的Flask应用:

app = Flask(__name__)
app.debug = True

请参阅Flask documentation