Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶+;Apache和500错误_Python_Apache_Flask - Fatal编程技术网

Python 烧瓶+;Apache和500错误

Python 烧瓶+;Apache和500错误,python,apache,flask,Python,Apache,Flask,我正在使用Flask和Apache建立一个网站,该网站已经启动并运行 然而,我遇到了这个奇怪的500错误:一个500错误将使网站关闭,在我重新启动apache之前,该网站将永远不会再次联机。我希望Flask+Apache可以在500错误后为下一个访问者提供服务,无论如何,Flask是线程本地的 假设发生以下情况: @app.route('/<ExpectSomeInteger>') def hello_world(ExpectSomeInteger): aNumber = i

我正在使用Flask和Apache建立一个网站,该网站已经启动并运行

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

假设发生以下情况:

@app.route('/<ExpectSomeInteger>')
def hello_world(ExpectSomeInteger):
    aNumber = int(ExpectSomeInteger)
    .....
@app.route(“/”)
def hello_world(ExpectSomeInteger):
aNumber=int(ExpectSomeInteger)
.....
显然上面的代码是错误的,应该使用
之类的东西。 如果一些访问者在“ExpectSomeInteger”的位置键入了一些字母,那么flask将返回500错误

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

这正常吗


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

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

@app.route('/<int:an_integer>')
def hello_world(an_integer):
    ...
@app.route(“/”)
def hello_world(一个_整数):
...

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

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

@app.route('/<int:an_integer>')
def hello_world(an_integer):
    ...
@app.route(“/”)
def hello_world(一个_整数):
...

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

多亏了@Sasha Chedygov,我的网站现在运行良好

问题是我通过遵循Linode的库安装了一个名为“mod python”的东西:


在我完成了“apt get remove libapache2 mod python”之后,现在一切似乎都很好。

多亏了@Sasha Chedygov,我的网站现在运行良好

问题是我通过遵循Linode的库安装了一个名为“mod python”的东西:


在我完成了“apt get remove libapache2 mod python”之后,现在一切似乎都好了。

你用什么来主持这个应用程序?mod_wsgi?我安装了以下
apt-get-install-libapache2-mod-python
sudo-apt-get-install-libapache2-mod-wsgi
@GabySolis:你遵循了吗?我敢打赌你正在使用mod_-python。你不应该使用它,因为这个项目已经死了,并且有很多问题,其中一个问题是Python代码只在Apache启动时加载,这意味着如果你的程序崩溃,它将不会自己重新启动。我很确定我是这样做的。我在写代码之前查阅了很多文档。我只将
WSGIDaemonProcess yourapplication user=user1 group=group1 threads=5
更改为``WSGIDaemonProcess myapplicationname user=www data group=www data threads=14`我阅读了文档您使用什么来托管应用程序?mod_wsgi?我安装了以下
apt-get-install-libapache2-mod-python
sudo-apt-get-install-libapache2-mod-wsgi
@GabySolis:你遵循了吗?我敢打赌你正在使用mod_-python。你不应该使用它,因为这个项目已经死了,并且有很多问题,其中一个问题是Python代码只在Apache启动时加载,这意味着如果你的程序崩溃,它将不会自己重新启动。我很确定我是这样做的。我在写代码之前查阅了很多文档。我只是将
WSGIDaemonProcess yourapplication user=user1 group=group1 threads=5
改为“`WSGIDaemonProcess myapplicationname user=www data group=www data threads=14`我读了文档@GabySolis:嗯,你的方式不正确。你的Apache配置文件是什么样子的?@GabySolis:嗯,你的方式不正确。您的Apache配置文件是什么样子的?