发布时间:2025-12-10 23:43:18 浏览次数:1
(1)查询用户签到信息接口:
@app.route('/get_sign/<user_id>')defget_sign(user_id):try:data=get_sign_info(user_id)exceptExceptionase:returnjsonify({'status':0,'Exception':str(e)})returnjsonify({'status':1,'data':data})defget_sign_info(user_id):conn=sqlite3.connect('test.sqlite')cursor=conn.cursor()cursor.execute('selectdatefromsignwhereuser_id=?',(user_id,))all_date=set([x[0]forxincursor.fetchall()])now_date=date.today().strftime('%Y-%m-%d')//将日期字符串化ifnow_dateinall_date:signed=Trueelse:signed=Falsetotal=len(all_date)conn.close()return{'total':total,'signed':signed}查询到所有签到日期后用set去除重复项,然后判断一下当天的日期是否在其中,如果不在其中,signed=False表示今日未签到。签到总数就是all_date的长度
使用了datetime库来获取日期信息。from datetime import date
(2)添加用户签到信息接口:
@app.route('/sign/<user_id>')defsign(user_id):try:update_sign(user_id)exceptExceptionase:returnjsonify({'status':0,'Exception':str(e)})returnjsonify({'status':1})defupdate_sign(user_id):now_date=date.today().strftime('%Y-%m-%d')conn=sqlite3.connect('test.sqlite')cursor=conn.cursor()cursor.execute('insertintosign(user_id,date)values(?,?)',\(user_id,now_date))conn.commit()conn.close()四、小程序前端
wxml文件
<viewclass="sign"wx:if="{{isLogin==true}}"><imageclass="image"src='../../dist/images/sign.png'></image><viewclass="sign_info"><viewwx:if="{{signed==false}}"bindtap='sign'>点击此处签到</view><viewwx:if="{{signed==true}}">今日已签到</view><view>已签到{{total_sign}}天</view></view></view>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(){varthat=this;varuserId=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("statuserror:"+res.data.Exception)}},})},sign:function(){varthat=this;varuserId=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("statuserror:"+res.data.Exception)}},})},关于微信小程序中怎么实现一个签到功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。