扫码考勤小程序正式上线

2019-07-31 15:59:02 浏览数 (1)

点击上方蓝字,长按关注不迷路。

经过几周的本地调试和云端部署,我的第二款应用级小程序终于上线了。写过许许多多的小程序,也见过许多的打卡小程序,但是接下来的这个,一定是很人性化的那个,它的名字叫 扫码考勤记 ,很自豪地推荐给大家,无论是班级活动打卡,还是公司年会打卡,这款打卡小程序都有用武之地。

其界面风格如下:

可点击小程序码快速体验。

操作说明

  1. 新建打卡任务可复制邀请码或二维码邀请好友参加。
  2. 在 任务管理->我的参与 界面,点击可查看打卡详情,长按可删除。
  3. 如未打开 GPS;快速打卡页数据刷新会不及时。
  4. 可打卡的范围是任务地点 1 km 以内;可打卡的时间是打卡截止时间前两个小时以内。

开发流程

小程序原生开发,用到了 ColorUI、QRCode 等第三方组件。

数据库使用 MySQL,一共三个表,其中两个实体表 users 和 tasks,分别表示用户和打卡任务,以及一个弱实体集 usertask,表示用户参与了哪些打卡任务;后台采用了 Flask,虽然说是轻量级 web 框架,但是应付几万的并发,还是没问题的,更何况后面还用了 nginx 负载均衡。

辛辛苦苦编好了界面,写好了接口,准备上线了,但是发现小程序只能通过备案后的域名访问,于是我就申请了域名,备案又等了两周,这里有个坑提醒下,有些后缀的域名是不能备案的,但是不能备案的域名会被逐渐批准,具体可以网上查询,还有就是 .cn 的域名特别难备案,有需要购买阿里云服务器的同学可阅读原文直达购买地址,顺便说一句,我采用的服务器系统镜像是 Ubuntu 16.04,自带的 Python3.5.2 环境。

uwsgi/nginx/supervisor

在等待备案的同时,先用 ip 地址做云端调试,主要采用 uwsgi nginx supervisor 技术路线。

第一次接触的同学可能对这三个东西一脸懵逼,且听我一一道来。

  1. nginx:nginx (engine x) 是一个高性能的 HTTP 和反向代理web服务器,其特点是占有内存少,并发能力强。阿里云服务器的 nginx 配置文件路径是 /etc/nginx/sites-available/default,修改完之后重启 nginx 就好。
  2. uwsgi:用来处理 Python 代码的应用服务器,Flask 自带的测试服务器不足以支撑在实际生产应用中的使用。阿里云服务器的 uwsgi 配置文件路径没有要求,可直接放在项目目录下,命名为 config.ini,使用命令 uwsgi --ini config.ini 即可通过公网 ip flask 项目运行的端口访问服务器。
  3. supervisor 在出现 uwsgi 异常退出的时候,supervisor 可以让这个服务自动重启。即作为守护进程使用。阿里云服务器 supervisor 的配置文件路径是 /etc/supervisor/conf.d/flaskCfg.conf,和上面两个配置一样,可上网搜相应的配置方法。

这三个东西的协调配合,保证了我们的后台稳定运行。

web 服务器/应用服务器/web 应用框架

web 服务器(给静态网页)

应用服务器(主要处理逻辑层)

web应用框架

负责处理 http 请求,响应静态文件,常见的有 Apache,Nginx 以及微软的 IIS。

负责处理逻辑的服务器。比如 php、python 的代码,是不能直接通过 nginx 这种 web 服务器来处理的,只能通过应用服务器来处理,常见的应用服务器有 uwsgi、tomcat 等。

一般使用某种语言,封装了常用的 web 功能的框架就是web应用框架,flask、Django以及 Java 中的SSH(Structs2 Spring3 Hibernate3)框架都是 web应用框架。

当我们在浏览器输入 URL 请求的时候,如果请求的是静态资源,则 web 服务器立即返回给浏览器,如果发送的是逻辑请求,则 web 服务器将请求给应用服务器处理。

代码暂不开源,毕竟辛辛苦苦的劳动成果,但是欢迎私戳我交流。

欢迎大家体验,有什么优化建议请在留言区吐槽。

往期精选

Python 个性化二维码制作

图说高考录取分数线

0 人点赞