从网站的多个视图访问MySQL

时间:2015-06-19 23:56:01

标签: python mysql pyramid mysql-python

我正在使用Python和Pyramid编写一个Web工具。它使用MySQLdb访问MySQL数据库,并根据用户输入进行查询。我为该工具创建了一个用户帐户,并为其使用的表授予了读访问权限。

当我在单个选项卡中打开页面时,它工作正常,但如果我尝试在第二个选项卡中加载它,页面将无法加载,直到第一次搜索完成。有没有办法解决这个问题,或者我只是试图错误地使用MySQL?

1 个答案:

答案 0 :(得分:1)

@AlexIvanov试图说的是,当您在控制台中启动Pyramid应用程序时,它将使用Pyramid的内置开发服务器。这个服务器是单线程的,并且一个接一个地提供请求,所以如果你有一个很长的请求,比如15秒 - 你就不能在另一个标签中使用你的应用程序,直到那个长请求结束。内置Web服务器的这种顺序特性实际上是一个非常棒的功能,可以大大简化调试。

在制作中,您的Pyramid应用程序通常由"真正的" webserver,例如Apache或Nginx。这样的Web服务器通常会产生多个" worker",或者使用多个线程来允许它们为多个并发请求提供服务。

所以我怀疑你的设置没有任何问题(前提是你没有对Pyramid的初始脚手架做任何特别奇怪的事情,而且它还在使用SQLAlchemy的会话配置了ZopeTransactionExtension等)。

A"单个共享MySQL帐户"绝不会阻止多个连接的客户端在MySQL中同时运行查询 - 事实上,开发服务器只有一个单线程客户端。