day24-博客系统知识补充(事务)
一、事务操作
事务指的是只要全部完成,我提交数据才能算成功,只要有一个不成功,我就不提交。原理:mysql 每执行创建一条数据 就commit 一次。然后事务就是 当做一个整体 ,最后 commit 数据
django创建事务:
from django.db import transaction
with transaction.atomic():
# 里面的代码 都遵循事务操作
tags = from.cleaned_data.pop('tags')
....
二、数据库操作
2.1、写原生sql
from app01 import models
# mysql:date_format(create_time,'%Y-%m')
date_list = models.Article.objects.raw(
"select nid,count(nid) as num,strftime('%Y-%m',create_time) as ctime from app01_article group by strftime('%Y-%m',create_time)")
2.2、占位符
说明:在%s之前加一个% 表示 不是占位符,就是 %s
>>> a = "%s %%s"%(1) >>> a '1 %s'
2.3、日期筛选
article = models.Article.objects.filter(blog=blog).extra(
where=['strftime('%Y-%m',create_time)=%s'],params=[val,]).all()
# select * from article where strftime('%Y-%m',create_time)=2017-02

浙公网安备 33010602011771号