学习视频网站

更新时间:2022-12-30 19:07:29 阅读: 评论:0


2022年12月30日发(作者:西西外挂官网)

视频学习⽹站防作弊⽅法

为了防⽌⽤户多点登录,同时开多个视频课程,对课程进度进⾏作弊,需要在每次登录时验证是否存在其他登录的ssion,并将使⽤其他

ssion观看的课程视频记录停掉。

从⽹上找到两种思路:

1、查ssion表中存的urid,由于urid是编码后存储在ssion表的data字段中,因此每次调⽤urid都需要解码和遍历整个数据集

2、将每个⽤户上次登录的ssionid存储在ur扩展表中,这样就能快速查找⽤户对应的ssion。

建议使⽤第⼆种思路,但我的实现⽅法有些区别。

参考⼿册:

读取除本次请求外的ssion的⽅法:

扩展预定义Ur模型的⽅法:

⼀对⼀关联:

带参数的装饰器

装饰器还有更⼤的灵活性,例如带参数的装饰器,在上⾯的装饰器调⽤中,该装饰器接收唯⼀的参数就是执⾏业务的函数foo。装饰器的

语法允许我们在调⽤时,提供其它参数,⽐如@decorator(a)。这样,就为装饰器的编写和使⽤提供了更⼤的灵活性。⽐如,我们可以在装

饰器中指定⽇志的等级,因为不同业务函数可能需要的⽇志级别是不⼀样的。

defu_logging(level):

defdecorator(func):

defwrapper(*args,**kwargs):

iflevel=="warn":

("%sisrunning"%func.__name__)

eliflevel=="info":

("%sisrunning"%func.__name__)

returnfunc(*args)

returnwrapper

returndecorator

@u_logging(level="warn")

deffoo(name='foo'):

print("iam%s"%name)

foo()

上⾯的u_logging是允许带参数的装饰器。它实际上是对原有装饰器的⼀个函数封装,并返回⼀个装饰器。我们可以将它理解为⼀个含

有参数的闭包。当我们使⽤@u_logging(level="warn")调⽤的时候,Python能够发现这⼀层的封装,并把参数传递到装饰器的环境

中。

@u_logging(level="warn")等价于@decorator

本文发布于:2022-12-30 19:07:29,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/61056.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图