装饰器
属于python的基础,包括二阶和三阶(带参数)
使用时在前面加上@xx,是可以将后面的方法进行装饰,带上xx的功能
MySQL事务
基本要素
- 原子性:一次做完,不能做了一半
- 一致性:A给B汇款,A少了,B会多
- 隔离性:同一时间只能一个事务,不能干扰
- 持久性:完成后不能回滚rollback
并发问题
- 脏读:A读了B后,B回滚了
- 不可重复读:A多次读取B,B更新了,导致A数据不一致(修改)
- 幻读:A给数据分类的时候,B又插入了一条,A看到没分类的数据跟幻觉一样(插入或删除)
解决该问题,需要锁定表
隔离级别
Mysql默认:可重复读
前两条不行,幻读可以
Django事务
以原子性的应用为例:
在我们之前做过的封装save方法前面,引入原子性@atomic
class Student4(models.Model):
sname = models.CharField(max_length=30)
score = models.Po