在Excel中使用win32com或xlrd或数据库在MySQL中的数据库

我开发了一个网站,其中的网页只是HTML表格。 我也通过扩展python的SimpleHTTPServer开发了一个服务器。 现在我正在开发我的数据库。

每个页面上的大多数表格内容都是静态的,不需要触摸。 但是,每个表(即页面)有一列需要进行编辑和存储。 这些值只是用户可以input的文本。 用户通过html textareasinputhtml textareas ,这些html textareas通过javascript附加到表格中。

数据库将存储键/值对,其中值是用户input的文本(至less现在)。

现在的情况

因为我的网页的原始格式是xlsx文件,我select使用Excel工作簿作为我的数据库,基本上只是镜像显示的网页的HTML表(页)。

我通过win32com连接到excel工作簿。 每次载入表(页面)时, javascript会遍历html textareas,并向服务器发送一个单独的请求,以便从数据库中载入相应的文本。

目前这种方法的工作,但速度非常缓慢。 我试图尽可能地优化所有的东西,我相信速度限制是win32com的直接后果。

因此,我看到了四种可能的途径:

  1. 把我当前的win32comfunctionreplace成xlrd
  2. 尝试加载一个表(页面)的所有html textareas一次通过一个服务器调用使用win32com的数据库
  3. 切换到类似sql东西(可能使用mysql,因为它很简单,足够强大,可满足我的需求)
  4. 使用xlrd但像(2)中那样对每个表(页面)调用一次服务器,

我的计划,build立这个function是两天左右。

有没有人有任何想法在时间花费代码与这些方法的速度权衡? 如果有人有更好的/更简化的方法,请分享!

可能不是你要找的答案,但是你的post非常广泛,我已经使用win32coma和Excel了,但是并没有把它们看作是你的目标的好工具。 更简单的策略是:

  • 对于服务器,使用Flask :它是一个Python HTTP服务器,通过Python代码和HTML模板来响应HTTP请求变得非常容易。 你将有一个完全有能力的服务器在5分钟内运行,那么你将需要一些时间创build代码从数据库中获取数据和从模板渲染(这真的很容易使用)。
  • 对于数据库,使用SQLite (与MysQL有更多的开销集成); 因为你只有2天,所以
    • 你也可以使用一个简单的CSV文件,因为API(Python有一个CSV文件读/写模块)要简单得多,缩短时间。 每个用户一个CSV,便于pipe理。 你不用担心为用户插入行,你只需追加; 而且您不会为用户实施删除行,您只需将其标记为不活动(CSV中的活动/非活动列)即可。 在处理来自客户端的GET请求时,从CSV中读取数据时,您可以计算有多less特定的行处于非活动状态,并重新编写CSV,因此偶尔请求响应速度会稍微慢一些。
    • 甚至更简单,但是如果您不需要在重新启动服务器时使用持久性,则可以使用您select的内存数据结构 。 如果这是一个演示,这应该是可以接受的限制。
  • 对于客户端来说,在javascript之上使用jQuery – 也许你已经这么做了。 使操作DOM变得非常容易,并使用滑入/滑出等效果。让自己的书“学习jQuery”,你将能够在几个小时内使用jQuery。

如果你只有两天的时间可能会有点紧张,但是你可能需要2天以上的时间来解决你现在的战略所面临的问题,以及你将会面临的问题。