【问题标题】:enabling users to save progress when completing web forms使用户能够在完成 Web 表单时保存进度
【发布时间】:2011-08-26 18:29:13
【问题描述】:

我正在创建一个学校网站,教师可以在该网站上跟踪学生在学期期间在各种基准上的表现,然后在最后提交结果以供全部门评估。我的计划是制作一个教师在一年中逐步完成的表格,其当前状态将保存在一个数据库中,该数据库也将存储最终提交的内容。

我的问题是,这样做的正确方法是什么?我对 HTML、客户端脚本、服务器端脚本(选择的语言是 Python)和数据库有一定的工作知识,我当然可以找到一种方法来解决这个问题,但是如果有一些常见的模式可以做到这一点我想知道的事情。特别是,如果有人能描述以下最佳方式,我将不胜感激:

  1. 实现用户登录/帐户
  2. 允许用户在表单上保存进度

【问题讨论】:

    标签: database forms webforms


    【解决方案1】:

    我不是 python 专家,但是...
    您的帖子没有告诉我们您是否已经看过框架。
    我听说Django 很好,并且遵循“包含电池”的策略。我鼓励你仔细看看它的authentication module。这可能会回答您的第一个问题。

    其次,在我看来,将随着时间的推移完成的数据存储在数据库中是可以的。这完全取决于你的建模技巧。如果您在考虑数据库查询的情况下为您的数据设计一个复杂而灵活的模型,那么您应该不会遇到任何问题。但建议在应用程序开发中为该步骤分配更多时间。

    【讨论】:

      【解决方案2】:

      ...教师在一年中逐步完成课程

      如果是这种情况,只需将表单的状态存储在数据库中,很可能为表单中的每个值存储一列。这与让用户编辑他们的个人资料或类似的东西没有太大区别 - 它基本上只是一种他们可以随时返回并进行更改的表单,其值填充在数据库中,并且可能由您的应用程序操作。

      如果您说“教师在一天的课程中逐步完成”,我建议您也这样做,尽管将值存储在用户的会话或 cookie 中将是另一种方式来实现这一点。事实上,如果用户没有注册帐户,这可能是唯一的方法。请注意,会话和 cookie 可以被删除或过期(对于这种特殊情况,这听起来不是一个好主意)。

      将用户 ID 分配给一列,将值分配给其他列。如果需要,您可以附加表格而不是覆盖表格行的值,这样您就可以跟踪修订历史记录并了解进行了哪些更改以及何时更改。

      【讨论】:

        猜你喜欢
        • 2011-05-09
        • 2014-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-09
        • 1970-01-01
        • 2019-01-28
        相关资源
        最近更新 更多