不得不说,生活驱动学习啊。因为实验室只有一张卡可以去教职工食堂吃饭,所以大家都共用一张卡,于是记账就成了一个不可避免的问题。
之前都是简单记纸上,经常容易忘记记账而且算起账来很麻烦,所以突然想到,我们都是要搞IT的人啊,结合最近在学的Python,就想着用Python搞个web服务器来记账。
说干就干
第一步,先把Localhost服务器主机搭建好,主要使用HTTPlib 模块中的 HTTPSever 和CGIHTTPRequesstHandler 这两个模块
第二步,从页面得到输入,并把输入的数据存储到本地数据库(最开始使用Excel)
第三步,在本地数据库完成数据更新及汇总等操作
第四部,将更新了的本地数据上传到页面上显示
因为对数据库不是很熟,最初的想法就是使用Excel,通过Python将从页面得到的数据存入Excel,这里借鉴了http://www.crifan.com/python_append_new_data_into_existing_excel_xls_file/这篇博客里的内容
与该博客所碰到的问题一样,最后一行我设为函数求和,但是写入内容后,该求和函数被替换为数字了。把
formatting_info=True之后还是没反应,算了先把基础功能实现了吧。写得过程以为是num为字符型所以不能求和,强制改为float后还是没有.Foget it,后来想在写入的时候把EXCEL的求和公式写入最后一行,看是否能够完成求和,结果,是失败的。最终还是想出了一个办法,既然我在Excel中无法实现求和,那我干脆在读Excel的脚本中实现求和然后显示,Bingo,最终这个功能还是上线了,哈哈。
在写入Excel模块中,将name,中餐还是晚餐,吃了多少钱,作为输入.将实验室成员的名字做一个固定的表格,通过匹配得到index,从而确定数据所在列;通过datatime函数获取当前日期,确定数据所在行
row= 2*datatime+add-1
colum = name.index ,其中add由参数lunch和dinner确定为0 或1
ws.write(row, colum, float(num))
将在页面上获取的数据通过套接字传输到脚本,并带入readxls函数中,写入数据
剩下的就是讲Excel中的所有数据打印到页面显示,利用for循环将从Excel中读到的数据显示到web页面上,最终效果如下: