业务场景
1.登录判断装饰器:
之前做过的一个用flask框架实现的移动app项目,里面大量用到是否已经登录的判断,如果这个业务逻辑大量重复地写在视图函数,代码的复用性很差,因此我将登录判断封装成装饰器,然后用这个装饰器装饰每一个需要验证是否登录的视图函数,代码如下:
2.事务原子性判断装饰器
之前用django框架做过订单提交功能,因为订单数据保存到数据库必须保持事务一致性,即所有数据要不全部提交成功,要不就回退到最开始的状态,用的是django自带的装饰器@transaction.atomic,在事务开始前打下一个点:transaction.savepoint(),相当于游戏的存档点,如果全部提交成功就保存到数据库,否则就回退到存档点;