俗话说得好,自己动手丰衣足食,虽然我不知道为什么你会需要自己动手,但总之你这样做了(
这个系列的教程会教你自己搭建一个能用的实验平台——可以在线收集数据,可以进行数据库管理的那种(而不需要手动下载文件再让被试发给你)。不过实话实说这个东西会比较糙,会有很多可以再优化的地方。
0 首先,什么是 Django?
Django 是一个用于构建 Web 应用程序的高级 Python Web 框架。
Django 提供了一套强大的工具和约定,使得开发者能够快速构建功能齐全且易于维护的网站。
Django 使用了非常先进的 MVC 模型框架,做到了数据和调用分离,因此有着相当强大且易于维护的功能……
……但你需要完全学会并且完全掌握 Django 吗?好像不需要。
如果只是收数据的话,你甚至不需要给这个网站做一个能看的首页,你只要把你的实验程序放上来,然后做好数据交互就可以了。(当然,实验程序得是网页版的——或许你在用 PsychoPy 转写的 PsychoJS?或许你在用 jsPsych?但总之我们在这个系列的教程中假设你已经拥有了适用于浏览器的实验程序。)
所以我们的目标其实只是想个办法构造一个东西,这个东西能够(1)从我们的实验程序中接收一串数据,(2)把接收到的这串数据保存到一个数据库里(当然,现阶段不考虑受攻击之类的安全问题之类的,只考虑能用)。
怎么样,是不是轻松了很多?
1 装环境
然后,写完上一句话之后,我意识到一个问题——最痛苦的不是写代码,是装环境。
然后我意识到我需要教大家装环境。
环境(Environment)在这里指的是一个程序跑起来所依赖的所有东西——比如有的程序需要一些前置的工具包(学过 C++ 都知道需要先 #include
,差不多类似这么个概念)。
但是,众所周知装环境是个玄学问题。同样的代码有的人能跑,有的人就跑不了;有的人装环境一次就成,有的人就死活装不上。用过 E-Prime 的人都说好。
Python 的环境虽然没有 E-Prime 那么玄学,但是也很痛苦。
说这么多,总之想告诉大家一个核心是:报错很正常,有的时候多跑几次就好了。
所以,出于方便本地开发和调试的原因,我推荐所有人都装一个 Anaconda。Anaconda 是一款主要面向科学计算的 Python 版本与环境管理器,能够自动帮你配置虚拟环境(让不同的程序调用不同的环境,而不用直接跑在最底层上),避免你一不小心把电脑上的整个 Python 全部炸掉(而我真干过这事)。
1.1 安装 Anaconda
考虑到网络原因,这里并不推荐大家去官网下载 Anaconda。请访问清华大学开源软件镜像站,下载并安装最新版的 Anaconda。在此由衷感谢清华大学 TUNA 协会。
下载,选个目录安装,注意整个目录必须是全英文的(不能有任何非英文字符,最好也不要有空格,否则会炸)。此外大致遵循 Anaconda 中文文档的说明就可以了。
安装好之后,打开 Anaconda(会比较慢,多等一下),然后让它该更新更新,该重启重启,然后就可以看到它的主界面了:
1.2 创建新环境
在 Anaconda 主界面左边的工具栏中切换到 Environments 一栏,然后点击下方的 Create,创建一个新的环境。
设置好环境名(这里输入的是 django_tutorial
,然后勾上 Python 选一个比较新的版本(我这里是 3.11
,最新版 Django 要求至少 3.10)。
如果你遇到了和我一样,在界面里加载不出 Python 版本的问题,那么请点击 base (root)
旁边的箭头,选择 Open Terminal,输入这样一行命令手动创建一个新的环境:
conda create --name django_tutorial python=3.11
1.3 安装 Django
切换到我们刚刚创建好的 django_tutorial
环境(会加载一会),点击旁边的绿色小箭头,选择 Open Terminal 运行这个环境:
这里会弹出一个命令行窗口,输入如下指令安装 Django:
pip install django
然后去泡杯奶茶吧。装起来会需要一点时间的。
1.3.1 装不上怎么办——使用清华大学 TUNA 镜像
因为网络原因,不出意外的话大部分同学是装不上的。所以这里需要大家配置一下,这里仍然使用清华大学 TUNA 镜像。
你可以根据 TUNA 协会的这篇指南更换镜像源,但如果你看不太明白里面在说什么的话,下面是一个更通俗的逐步教程。
- 打开
base (root)
环境,输入命令conda config --set show_channel_urls yes
并执行。 - 前往你的电脑用户文件夹。你应该会看到用户文件夹下有一个
.condarc
文件,使用记事本打开它。 复制以下内容,粘贴到这个文件里并保存。
channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
- 回到刚刚的环境中,运行
conda clean -i
,正常情况下一切就绪了
如果你在 1.2 步或 1.3 步中遭遇了各种网络问题的话,先按照这里的思路操作一番,然后再重试上面的指示即可。
不出意外的话,现在你就能成功安装 Django 了。
2 装编辑器
好吧我摊牌了,我用的 VSCode。
如果你折腾过 Python,会一些编程的话,你应该知道大家推荐的针对 Python 的编辑器其实是 PyCharm,我也推荐大家装 PyCharm。但后续我的教程中用的都是 VSCode,大同小异,问题不算特别大。
在这里下载 PyCharm,下载好安装即可,这里就不啰嗦了。
3 创建一个 Django 项目
来都来了,为了验证你的 Django 是不是真的装好了,我们来创建一个项目试试吧。
首先我们先在某个地方新建一个空的文件夹。最好选一个你能找到的地方。
然后还是在我们的 django_tutorial
环境中,使用 cd
命令打开这个文件夹(可以 Bing 搜索一下 cd
命令的用法)。
接下来,使用这个命令创建一个 Django 项目:
django-admin startproject onlineExperimentTutorial
如果你的 Python 和你的 Django 都安装成功了,你会看到文件夹里多出了一些东西。
给自己鼓鼓掌,恭喜自己迈出了第一步吧!