这学期尝试做了一个关于动态二维码签到系统,我采用的前端是用微信小程序,后台是PHP,然后二维码的生成是python。在这里我来介绍一下我的这套系统里面的二维码是如何实现动态刷新。
一
关于调用python的库,我主要使用的是qrcode和random,定义函数creatimage,在这里面写生成的二维码储存的详细信息,因为我们是实现的动态签到,所以我给这个二维码设置了一个随机数生成,(后台只需要对比一下随机数是否相同就可以了),
首先是sign包括生成的随机数。
然后qr里面写关于二维码的大小之类。
qr.add_data里面写这个二维码所包含的信息,这里我们包含了随机数。
最后img生成该二维码。
import qrcode
import time
import threading
import random
import os
def creatimage():
sign= random.randint(0,1000000)
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=100,
border=4,
)
qr.add_data(sign)
qr.make(fit=True)
img = qr.make_image()
img.save('sign_in6.png')
def timeloop(num):
t = threading.Timer(num, creatimage)
if num < 30:
timeloop(num+6)
t.start()
# print(num)
else:
print()
timeloop(2)
二
刚刚只是生成了一个普通的二维码,现在我们使用递归算法(重复调用creatimage函数)实现实时刷新生成新的二维码。在函数timeloop里面设置一下下一次生成二维码的时间,在这里我写的是6s一次刷新,然后多次递归,我们可以修改if num<一个数,或者最后的timeloop()里面的数字来规定生成的次数和两次二维码刷新的时间间隔。
这套系统更多的重难点我将在之后更新,新手上道,多有不足,还望海涵。
如果你有兴趣有梦想有人生信条的大学生,研究生或者就职大佬还请光临我们代码学习群交流:871352155。
后序
喜欢用HTML做成礼物或者贺卡等的朋友详情请看我的B站合集https://www.bilibili.com/video/av84894004不定时更新