在Python(使用Django)中进行心理实验 - 如何移植到互动网页应用?

2 投票
1 回答
573 浏览
提问于 2025-04-16 22:58

我正在用Python写一个心理学实验,想把它做成一个网页应用。我已经把Python的部分搞定了,基本上可以作为命令行程序运行。根据一个计算机专业朋友的推荐,我选择了Django和sqlite数据库。这部分也没问题,我的开发服务器已经启动,数据库表也准备好了。

我不明白的是,怎么把这两部分结合起来。我找到的Django教程大多是关于如何创建博客、消息系统或投票系统的,这些系统都是基于发送表单数据的。但我不能这样做,因为我需要在毫秒级别上计时对刺激的反应——我需要构建一个互动应用,在实验过程中不依赖表单提交的数据或URL的变化。

简而言之:我完全不知道怎么把我的简单命令行程序变成一个“实时”的互动网页应用。

如果能提供相关教程的链接,那就太好了!我也非常希望能得到一个关于我缺失的概念的高层次解释。

(顺便说一下,我之前在这个项目上问过一个问题(数据库选择),可以在这里找到)

1 个回答

3

你需要使用HTML和JavaScript,然后你可以收集结果并把它们发送到服务器。不过要注意,结果可能会被操控,因为这个练习的代码是在用户的电脑上运行的。

补充一下:我推荐一个JavaScript库,叫做jQuery:http://docs.jquery.com/Tutorials

再补充一点:

我再具体一点,你至少需要在Django中创建两个模型,一个是Exercise(练习),另一个是ExecutedExercise(已执行的练习)。Exercise模型会有一些字段,比如名字、编号等等,存储每个练习的基本信息。而ExecutedExercise模型会有两个字段,一个是指向Exercise的外键,另一个是用来记录完成这个练习花了多长时间。

接下来,在JavaScript中,你会记录每个练习的时间,然后把这些数据发送到Django的视图中,处理数据存储。怎么发送呢?你可以使用http://api.jquery.com/jQuery.post/。你需要创建一个数据字符串,比如data = { e1: timingE1, e2: timingE2 },然后把它发送到视图中。在那个视图里,你可以处理POST参数,创建一个ExecutedExercise对象(你会有每个练习所花的时间),然后保存这些数据。

撰写回答