1

我将如何编写一个基本上看起来像这样的简单 Web 应用程序(实际上,它没有,但一旦我得到以下部分,我将能够从那里找到我的方式):

  1. 用户登录(即我需要某种身份验证)。
  2. 用户输入一个数字。
  3. 每 X 秒,服务器计算在前 X 秒内输入的所有数字的平均值。
  4. 向用户显示平均值。
  5. 数字最接近平均值的(唯一)用户在他的分数帐户上获得 +1。

对于服务器端脚本,我想使用 Python。对于数据库访问,我将使用 SQLAlchemy。服务器是 Apache。假设我已经使用以下字段设置了数据库:用户名、密码(散列)、分数。我知道怎么做(2)、(4)和(5)。对于 (4) 我可能会使用 XMLHttpRequest 虽然我不确定这是否是最好的解决方案。因为我的最终应用程序无论如何都需要 JavaScript,所以 XMLHttpRequest 应该没问题。

@(1) 我想我可以在 Python 中使用“Cookie”模块找到解决方案,但我不知道这是否是正确的方法。那么,什么是会话管理的简单但安全的方法呢?

@(3) 这是我正在努力解决的主要问题。我已经查看了“套接字”模块,但我不确定这是否适合该任务。显然,我需要有一些循环

  1. 听 X 秒并收集所有数字
  2. 计算平均值,确定最近的用户
  3. 更新用户帐户

我不关心的一件事是与旧浏览器或 IE 的合规性。

你能推荐一些我应该研究的东西,或者甚至提供一些代码吗?

4

1 回答 1

1

好的,首先你需要将 Python 连接到 apache - 为此我推荐mod_wsgi

然后到第 1 步 - 您可以创建自己的 Web 表单并查询用户的密码,并为他们设置一个 cookie 以记住他们的会话(您可以将活动会话存储在数据库中或使用一些加密技巧将其保存在 cookie 中) .

关于其他功能,您只需要在 python 后端和前端之间进行良好的通信 - 我建议在前端使用jQuery,它可以解析来自您的应用程序的 XML,或者如果它真的很简单,只需输出字符串并让 webapp拿来。

在进入最终实现之前,我建议您阅读AJAX 教程,该教程似乎很好地涵盖了基础知识,您可以使用内置服务器进行调试,而无需打扰 apache 设置。

或者,您可以使用框架(例如非常轻量级的Bottle),这将为您节省大量时间。

此外,关于您正在努力解决的问题-您实际上不需要守护程序检查,因为可以在每次访问时计算数据-只需确保您使用时间戳存储您的提交。另外,您没有说如果在最后 X 秒时间范围内没有提交会发生什么 - 正确答案是零吗?

最后,这似乎是一个相当“动态”的应用程序——你将如何确保没有竞争条件?如果不采取一些特殊的预防措施,在高流量环境中可能很难获得可靠的结果。

于 2012-06-27T14:20:34.170 回答