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

 

posted @ 2018-05-30 10:06  帅丶高高  阅读(155)  评论(0编辑  收藏  举报