单独使用django的orm带事务

import os
import datetime
from django.conf import settings
os.environ['DJANGO_SETTINGS_MODULE'] = "settings" #必须在导入transaction之前设置settings模块的名称,transaction会引用settings模块
from django.db import transaction

if not settings.configured:
settings.configure(
#DATABASE_ENGINE = 'sqlite3',
#DATABASE_NAME= os.path.join( os.path.dirname(__file__), 'db\\sqlite3.db'),
DATABASES = {
'default': {
'ENGINE': 'sqlite3',
'NAME': os.path.join( os.path.dirname(__file__), '\\sqlite3.db'),
}
}
)


from django.db import models
class Person(models.Model):
class Meta:
db_table = 'persons'
app_label = 'test'

created_at = models.DateTimeField('created_at', auto_now_add = True)
updated_at = models.DateTimeField('updated_at', auto_now = True)
name = models.CharField("name", max_length = 20)
age = models.IntegerField("age")
time1 = datetime.datetime.now()
with transaction.commit_on_success():
for i in range(100000):
p = Person()
p.name = "a"
p.age = 111
p.save()
time2 = datetime.datetime.now()
print (time2-time1).seconds

 

posted @ 2012-03-03 14:42  babykick  阅读(1148)  评论(0编辑  收藏  举报