【问题标题】:How to store form logic in machine readable format?如何以机器可读格式存储表单逻辑?
【发布时间】:2021-09-13 13:52:05
【问题描述】:

我们的目标是创建一个用户在在线表单中指定输入的应用程序。涉及到很多表单逻辑。这意味着用户流程取决于他们在表单中提供的答案。例如,当用户在问题 3 中选择“是”时,转到问题 6,而如果用户选择“否”,则转到问题 4。

当然,具有各种情况(if、elif 等)的 python 模块可以工作(以一种复杂的方式),但感觉可能有更好的方法。

例如,TypeForm 支持逻辑,如下所示:

我们正在寻找一种可以很好地与前端 UI 配合使用的解决方案(例如,基于 Node.JS/React/Vue 等)

我们已经尝试过 TypeForm、Jotform,但一直在努力寻找对程序员友好的良好解决方案。

您是否熟悉我们可以用来实现上述目标的 (Python) 工具?

【问题讨论】:

  • 如果您想为您的受访者使用 Typeform 的 UI,但以程序员友好的方式创建表单,也许您可​​以使用我们的 Create API 创建 Typeform:developer.typeform.com/create

标签: python database logic


【解决方案1】:

在我看来,您将从有限状态机 (FSM) 中受益。

您可以定义一个初始状态(第一个问题),然后根据用户的操作(答案),转换到另一个状态(问题)。除了转换到其他状态之外,用户的动作也可以产生输出(让机器在转换到另一个状态之前或期间做一些事情)。

FSM 是工程中非常流行且相对简单的框架。

FSM 的背景阅读:

  1. 快速阅读 FSM:https://isaaccomputerscience.org/concepts/dsa_toc_fsm?examBoard=all&stage=all

  2. 非常简单的介绍:https://brilliant.org/wiki/finite-state-machines/

至于 Python:

  1. 这个包看起来非常简单直观https://github.com/pytransitions/transitions

  2. 另一个好包:https://python-statemachine.readthedocs.io/en/latest/

  3. 介绍如何实现自己的 FSM 的教程(没那么难,看一下)https://www.python-course.eu/finite_state_machine.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    相关资源
    最近更新 更多