一、效果图

点击签到后

二、数据库

用一张数据表存用户签到的信息,每次用户签到都会往表中添加一条记录了用户id和签到日期的数据,如下图

三、后端

后端写两个接口,一个用于查询用户今日是否签到和签到记录总数,一个用于添加用户签到信息到数据库。这里用的是python的flask框架。

(1)查询用户签到信息接口:

@app.route('/get_sign/')defget_sign(user_id):try:

data=get_sign_info(user_id)exceptException as e:return jsonify({'status':0,'Exception':str(e)})return jsonify({'status':1,'data':data})defget_sign_info(user_id):

conn= sqlite3.connect('test.sqlite')

cursor=conn.cursor()

cursor.execute('select date from sign where user_id=?',(user_id,))

all_date=set([x[0] for x incursor.fetchall()])

now_date=date.today().strftime('%Y-%m-%d')//将日期字符串化if now_date inall_date:

signed=Trueelse:

signed=False

total=len(all_date)

conn.close()return {'total':total,'signed':signed}

查询到所有签到日期后用set去除重复项,然后判断一下当天的日期是否在其中,如果不在其中,signed=False表示今日未签到。签到总数就是all_date的长度

使用了datetime库来获取日期信息。from datetime import date

(2)添加用户签到信息接口:

@app.route('/sign/')defsign(user_id):try:

update_sign(user_id)exceptException as e:return jsonify({'status':0,'Exception':str(e)})return jsonify({'status':1})defupdate_sign(user_id):

now_date=date.today().strftime('%Y-%m-%d')

conn= sqlite3.connect('test.sqlite')

cursor=conn.cursor()

cursor.execute('insert into sign (user_id,date) values(?,?)',\

(user_id,now_date))

conn.commit()

conn.close()

四、小程序前端

wxml文件

点击此处签到

今日已签到

已签到{{total_sign}}天

wxss文件

.image{float:left;width:140rpx;height:140rpx;margin-right:7%;margin-left:20%;

}.sign{margin-top:10%;

}.sign_info{width:100%;color:#666;font-size:43rpx;

}

js文件

get_sign: function(){var that = this;var userId = wx.getStorageSync("userId");

wx.request({

url:'http://服务器公网ip:80/get_sign/'+userId,

method:"GET",

success:function(res) {if (res.data.status == 1) {

that.setData({

total_sign: res.data.data.total,

signed: res.data.data.signed,

})

}else{

console.log("status error: " +res.data.Exception)

}

},

})

},

sign:function(){var that = this;var userId = wx.getStorageSync("userId");

wx.request({

url:'http://服务器公网ip:80/sign/' +userId,

method:"GET",

success:function(res) {if (res.data.status == 1) {

that.setData({

total_sign: that.data.total_sign+1,

signed:true,

})

wx.showToast({

title:'成功',

icon:'success',

duration:2000})

}else{

console.log("status error: " +res.data.Exception)

}

},

})

},

用户登录后,会立即触发get_sign函数,从数据库获取用户签到信息存到page的data中,页面也会显示用户今日是否签到和签到总数。

用户点击签到后,会保存签到信息,并更新data。用showToast弹窗提示签到成功。

python 微信小程序签到系统_简易微信小程序签到功能相关推荐

  1. 视频教程-雪狐CentOS7云服务器部署微信小程序商城系统(宝塔面板)-微信开发

    雪狐CentOS7云服务器部署微信小程序商城系统(宝塔面板) 1.多年开发和授课经验. 2.精通PHP.前端.Android.iOS等开发技术. 3.希望能将自己所学教给学生. 刘安良 ¥12.00 ...

  2. 微信小程序实验案例:简易成语小词典

    微信小程序实验案例:简易成语小词典 01.准备工作 1●申请数据接口 现在网络上第三方的免费数据资源越来越少了,这里推荐使用聚合数据的免费接口来实现本次实验案例. 首先访问聚合数据官网https:// ...

  3. 企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格

    企业微信SCRM系统部署_企业微信SCRM二次开发_企业微信SCRM系统独立版源码价格 点趣互动是企业微信系统的第三方应用提供厂商,用于管理员工企业微信的内一款系统软件.点趣互动企业微信scrm软件主 ...

  4. php答题测试,ThinkPHP框架开发的微信考试问卷答题系统_学生在线考试答题系统

    源码介绍 ThinkPHP框架开发的微信考试问卷答题系统,通过微信公众平台进行问卷答题,适合用来做问卷调查,也可以用来做学生考试答题系统,还有完善的问卷后台管理系统,可自定义上传问卷,支持成绩表查询. ...

  5. python 微信小程序签到系统_微信小程序签到功能

    本文实例为大家分享了简易微信小程序签到功能的具体代码,供大家参考,具体内容如下 一.效果图 点击签到后 二.数据库 用一张数据表存用户签到的信息,每次用户签到都会往表中添加一条记录了用户id和签到日期 ...

  6. Php扫码签到功能怎么实现,扫码签到常用方法_云分组小程序

    扫码签到常用方法,云分组小程序,以800人团队为例,学员扫码分组仅需10秒钟. 扫码签到常用方法, 可以检测人员进出方向,对于实时统计会场实际人数的会议非常重要.多媒体电子签到系统是将数字毛笔签名.影 ...

  7. 微信小程序约课_基于微信小程序的瑜伽馆约课系统设计

    李涛 何绍平 龙建宇 江明 韦美雁 摘要:系统前端采用微信小程序开发工具实现,后台采用thinkPHP5进行搭建,并运用Javascript技术进行研发,系统主要实现了约课管理.课表管理.用户管理.商 ...

  8. 实体店做微信预约小程序的好处_分享微信预约小程序开发步骤

    1.进店模式:通过小程序,用户可以直接在小程序上选择合适的时间.服务项目和服务价格,进行预约.也方便店主合理安排时间和服务,给双方带来舒适的体验. 2.预订上门服务模式:通过小程序预订上门服务系统,如 ...

  9. 求职招聘小程序,微信小程序招聘系统,校园招聘微信小程序系统毕业设计作品

    项目背景和意义 目的:随着中国经济改革的不断发展,大学生的就业形势越来越严峻,就业方向也越来越广泛,就业手段也越来越繁杂.但是随着网络在社会中的普及尤其是社会中的先进群体--大学生,根据网络的普遍性和 ...

  10. 微信公众账号后台怎么解除小程序_微信小程序怎么注销账号_微信小程序注销方法_快吧小程序...

    微信小程序一直存在一个问题:开发者不能注销自己的小程序.之前当开发者需要彻底清除小程序信息时,只能够通过暂停服务或关闭"允许被搜索"的方式曲线救国.现在,这个问题终于解决了. 在微 ...

最新文章

  1. logistic回归 如何_第七章:利用Python实现Logistic回归分类模型
  2. 自定义Push和Pop过渡动画
  3. Java面试宝典——————Java基础部分(三)
  4. struct sockaddr与struct sockaddr in struct sockaddr un的区别和联系
  5. android开发字体样式,Android开发中修改程序字体的样式
  6. 由创建一个不能被继承的类引发的对象模型的思考
  7. 全球与中国固态电池市场深度研究及投资可行性评估报告2022-2028年
  8. Android 开发工具类 27_多线程下载大文件
  9. Spring注解驱动开发
  10. 惊!Kubernetes 将弃用 Docker,开发者们怎么办?
  11. 去除面部黑色素小妙招_去除暗黄皮肤的小妙招 7招让你白皙动人
  12. mysql全文搜索实现模糊查询_mysql使用全文索引实现大字段的模糊查询
  13. Gradient-Based Learning Applied to Document Recognition
  14. Q96:PT(1):方格纹理(Checker)(2)——2D Checker
  15. 计算机应用基础 许晞课程标准,〔计算机应用基础〕课程标准.doc
  16. 解决微信小程序Video 某些属性设置不起作用问题
  17. unity 解决乱码_解决unity3d读写中文乱码
  18. SpringBoot基础-refresh方法解析
  19. 椭圆形建筑——逸夫演艺中心
  20. 打印程序在计算机上的应用程序,什么是“后台打印程序子系统应用程序”(spoolsv.exe),以及为什么它在我的电脑上运行?...

热门文章

  1. JAVA游戏死神之谜下载_诸神战纪二-死神之谜BT版
  2. 起重机液压控制系统实训QY-JXSX01
  3. 最最简单的使用DW编程软件
  4. CDLINUX——minidwep-gtk
  5. es服务器的cpu压力过大的调试
  6. matlab水汽计算公式,饱和水汽压的计算
  7. The StL Format(StL 格式)
  8. innerHTML和outerHTML以及innerText和outerText之间的区别
  9. 计算机网络 IP地址分为那两部分
  10. android viewholder继承,Android RecyclerView中的ViewHolder