1

我正在使用 Flask 和 Apache 构建网站,并且该网站已启动并正在运行。

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

假设以下情况:

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

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

灾难是 apache 之后会向所有访问者发送一个 500 错误页面!我只能重新启动 apache 以使其再次工作!

正常吗?

我记得当我访问一些 PHP+MySQL 站点时,即使出现了一些非常严重的错误,该站点也可以正常为下一个访问者提供服务。

4

2 回答 2

1

感谢@Sasha Chedygov,我的网站现在运行良好。

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

在我执行“apt-get remove libapache2-mod-python”之后,现在一切似乎都很好。

于 2013-05-13T00:23:22.420 回答
0

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

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

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

于 2013-05-13T00:01:03.437 回答