0

从 URL 中获取变量的唯一方法是通过

def application(environ, start_response):

但是mysql代码必须放在这一行的顶部。

有哪些已知选项?

额外信息

虽然看起来可以将 mysql 代码放在

def application(environ, start_response):

这不是一个工作模型,因为在 8 次刷新后 WSGI 达到了 8 个进程的限制。因此应用程序变得无法使用。

因此 mysql 查询必须高于此行,以免干扰 WSGI 的限制。

4

1 回答 1

1

好的,这是对您先前(已删除)问题的回答,因此有点“作弊”,但是您问的问题与我已经在那里回答的问题相同;

您的代码类似于此伪代码;

connection = mysql_connect()

def application(environ, start_response):
    <do some work>
    connection.close()

这意味着您在加载文件时打开连接一次,但是一旦函数运行一次,连接就会关闭,并且在再次调用函数时永远不会再次打开。由于第二次调用该函数时的工作是在关闭的连接上完成的,因此您的 WSGI 将返回错误。一旦 WSGI 完成了 8 个进程,它就不再工作了,因为所有进程都关闭了它们的连接。

如果你改为这样做;

def application(environ, start_response):   
    connection = mysql_connect()
    <do some work>
    connection.close()

...每次调用该方法都会打开一个新连接并在完成后关闭它,您的 WSGI 将愉快地继续工作。

于 2013-05-17T15:56:59.430 回答