本人现在在浙江就读高二。
自己本身有一个小博客,而阿里云作为国内市场份额第一的云服务商,我经常在这里瞎逛,想找点优惠的活动,同时也会去开发者社区看看有没有什么新技术。最近发现了这个学生专享的入口,第一时间就申请了使用。
在我们这里,核酸的效期是3天,而如果你想要上学,就必须要做核酸,所以学校为了常态化检测,每周的周二和周五会有医院的志愿者过来帮我们做核酸。这个过程本身没有什么问题,志愿者拿着咽拭子往嗓子眼里插进去,捅两下,拿出来折到试管里就结束了。但是,做核酸之前有一步非常的麻烦——信息采集。根据上头的指令,学生是不能把手机带入校园的,也就是说我们做核酸采集没法扫健康码。那么我们学校是怎么做的呢?
- 学校向班主任发出做核酸的指令;
- 班主任在钉钉家长群内发布家校作业,通知各位家长生成预约码;
- 家长填写预约码并生成;
- 家长将生成好的预约码截图;
- 家长将截图上传至钉钉作业内;
- 班主任在全部收齐后打印;
- 班主任将印好的预约码发给学生;
- 学生拿着预约码去做核酸。
看着非常的繁琐,我也觉得有点麻烦。并且在这个过程中,还有家长在生成预约码的时候把自己孩子的身份证号填错,导致孩子的核酸做了相当于没做。在做核酸之前发现了这些个问题,班主任还要急忙跑去重新打印正确的预约码,真的是非常的麻烦,班主任还经常说被学校这些东西搞得昏天暗地。(以上事件真实发生)种种因素合在一起,我脑袋里闪过了一个念头:核酸的预约码能不能统一生成?如果做得到的话,这个步骤就变成了这样:
- 学校向班主任发出做核酸的指令;
- 班主任(年级组长/学校)统一生成班级(年级/学校)的预约码;
- 班主任(年级组长/学校)打印生成好的预约码;
- 班主任将印好的预约码发给学生;
- 学生拿着预约码去做核酸。
这可不就简单多了?生成预约码的资料:姓名、身份证号、住址、手机号这些的在教务处那边都有留存,这样子统一生成不仅仅是便捷,而且还不容易出错。
有了这样的念头,说干就干。
我把省内统一生成预约码的网站打开,自己生成了一个的同时抓了个包,非常简单就抓出了一个POST请求,里面JSON包含了刚刚我填写的内容。具体生成预约码的流程如下:
- 客户端填写好信息,点击生成;
- js脚本对填写的身份证号进行校验;
- 确认无误后发送POST请求到服务端;
- 服务端收到请求后返回一个"ORDER_ID"。
- 客户端在收到返回的id后使用js脚本即时生成一个二维码展示在页面上。
可以说省里面做的这套东西毫不拖泥带水,甚至连个验证码都没有,挺方便的。
我按照请求的url、json等信息,使用python的requests库发了一个一样的请求,结果返回了错误码500。根据我多年写py脚本的经验,复制了个头就好了,正常返回了ORDER_ID。这也证明了我的想法是可行的。接下来又写了一套用id生成二维码再将所有生成的二维码制作成了一个pdf文档,非常的便捷。我用我手头掌握的资料,试了批量生成,也没啥问题。但是,如果到时候生成好了不能用咋办?要实际尝试一下才行,所以我就拿着我程序生成的二维码去了信息检录处登记,扫码也是正常扫出了我的信息,这样就完全OK了。
但是!让学校直接面对这py的黑框框可不行,于是我用Django框架套了层皮上去,部署到了阿里云为学生提供的ECS上去,让班主任们用得更加舒心。班主任输入我内置的账号密码登录,查看学生信息是否正确,正确的话只需要按一下“生成”按钮,就可以直接把全班的预约码pdf文档下载下来了。
说这东西有用吧,貌似也没啥用,写的东西也是简单到了极致,可开发者不就是从一个个功能模块的完成之中获取那么一点点的自豪感的嘛?反正我是挺开心的。