一款属于自己的小程序
文章链接:https://mp.weixin.qq.com/s/QLJKWMe8t456xOI1QigGlA
今天介绍下自己做的一款小程序「冲顶课堂」,从0到1自己完成的一款小程序。
这是一款答题类的小程序,主要考察的是小学初中语文的一些知识,用户答题每次答完计算分值,统计排行榜,同时记录错题,并对题目进行纠错。
先上几张效果图,忽略粗糙的界面...
小程序码:
背景介绍
自己本身是做android开发的,这几年移动端慢慢成了「夕阳行业」,不再是那么火热,沉淀下来了,相对的小程序慢慢火起来了,毕竟是微信的亲儿子。趁着这波浪潮,自己也学习了一波,相对上手还是比较容易的,加上之前自己做网站,写过接口,本着学以致用的原则,将这些「技能」 灵活运用,做一个完整的小程序。
后台数据
如果是自己出题目,那基本不可能的,如果要一条条的到网上复制粘贴,这个工作量也是可想而知的,这里就要用到python 爬虫的技巧了。爬取的网站需要用户登录,这里使用selenium
来模拟登录,爬取时通过加载Chrome配置来免登录。
driverOptions = webdriver.ChromeOptions()
driverOptions.add_argument(r"C:\Users\Administrator\AppData\Local\Google\Chrome\User Data")
driver = webdriver.Chrome("chromedriver", 0, driverOptions)
页面解析,采用的BeautifulSoup
,先把数据统一保存到excel文档,后续写个脚本写入到数据库。页面解析这块 之前有做过相关爬虫的文章,这里就不详细描述了。
由于题目众多,小学的大概400多道,初中的1000道,自己没法一一测试,所以里面有纠错的功能,便于后续维护的。
后台用的django自带的后台,接口用的django rest framework
,写起来也比较方便快捷。 比较麻烦的算是数据库设计的,当然我这里的数据结构算简单的,没什么复杂性,表关联下的就可以了。用户id 就是小程序提供的openId,跟其他表加以关联使用。
小程序
小程序相关的方面的直接参考的官方文档的,相关api还是很齐全的,布局采用的flex 布局,加上css样式的,总体是简单的,后期会对应增加些卡通元素的,毕竟有面向小学的。
小程序里面有个登录授权的需要注意的,wx.getUserInfo
直接调用不再出现授权弹框,而需要<button open-type="getUserInfo"></button>
用户主动授权获取用户信息的。这就意味着 用户直接打开小程序不再出现授权弹框,而需要用户通过按钮点击主动去授权。
另外小程序有一套自己的WXS 的脚本语言,一般渲染数据是直接通过setData 来渲染,如果遇到一些数据需要前端自己处理再显示的,就可以使用WXS 来处理,避免使用js 去处理再去setData的,类似过滤器的感觉。当然WXS 也有注意事项的,官网也有这块的介绍 WXS。
一点感想
做这样一款小程序,一是把自己学习的关于前后端的知识灵活运用起来,二是后续公司会让移动端的接手些小程序,自己也算提前练个手的。
相对的做一款app时间周期比较长,而且要考虑到双端,小程序的开发成本相对就低了。当然这款小程序是自己从0到1的开始 ,后续再慢慢优化的!
欢迎关注我的博客:https://blog.manjiexiang.cn/
更多精彩欢迎关注微信号:春风十里不如认识你
有个「佛系码农圈」,欢迎大家加入畅聊,开心就好!
过期了,可加我微信 tx467220125 拉你入群。
本文转载于:一款属于自己的小程序