Flask + Apache和500错误

时间:2013-05-12 23:55:50

标签: python apache flask

我正在使用Flask和Apache构建一个网站,该网站正在运行。

然而,我遇到了这个奇怪的500错误:一个500错误将使网站关闭,并且该网站将永远不会再次上线,直到我重新启动apache。我希望Flask + Apache可以在500错误之后为下一个访问者提供服务,无论如何,Flask是线程本地的。

假设以下情况:

@app.route('/<ExpectSomeInteger>')
def hello_world(ExpectSomeInteger):
    aNumber = int(ExpectSomeInteger)
    .....

显然上面的代码有问题,它应该使用<int:ExpectSomeInteger>和东西。 如果某个访问者在“ExpectSomeInteger”的位置输入了一些字母,那么flask将返回500错误。

灾难是apache会在此之后向所有访问者发送500错误页面!我只能重新启动apache才能让它再次运行!

这是正常的吗?

我记得当我访问一些PHP + MySQL网站时,即使发生了一些非常严重的错误,该网站也可以照常为下一位访客提供服务。

2 个答案:

答案 0 :(得分:1)

感谢@Sasha Chedygov,我的网站现在工作正常。

问题是我按照Linode的库安装了一个名为“mod-python”的东西: https://library.linode.com/web-servers/apache/installation/ubuntu-10.04-lucid

在我做了“apt-get remove libapache2-mod-python”之后,现在一切都很好。

答案 1 :(得分:0)

将类型转换器传递到路径中:

@app.route('/<int:an_integer>')
def hello_world(an_integer):
    ...

现在,an_integer保证是一个整数。当您传递除整数之外的任何内容时,将发送404响应。