执行数据库删除,使用了django的cursor.execute(sql)进行删除数据,发现了奇怪问题,有时候可以执行成功,有的时候执行不成功。
通过SQL的监控看到SQL语句是正常的,就是没有执行commit
代码应该是没问题的:
from django.db import connection
cursor = connection.cursor()
cursor.execute("delete from event where id=%s",[event_id])
cursor.close()
想不通问题出在什么地方,有的地方用类似的代码就可以,最后还是改成了django自己的那套删除方法:
object.delete()
自己也封装了个数据库操作的类。
class Database:
def get_connection(self):
connection = Connection(host="localhost",user="root",passwd="",use_unicode=True,charset="utf8")
connection.select_db(‘ppsea_main’)
return connection
def get_cursor(self):
return self.get_connection().cursor()
# 根据SQL取一条指定数据
def select_fetchone(self,sql):
cursor = self.get_cursor()
cursor.execute(sql)
print "select_fetchone sql: %s" %(sql)
object = cursor.fetchone()
desc = cursor.description
if object:
print object
d = {}
i = 0
for item in desc:
d[item[0]] = object[i]
i=i+1
print "one %s" %(d)
return d
else:
return object
# 根据SQL取的数据列表
def select_fetchall(self,sql):
cursor = self.get_cursor()
cursor.execute(sql)
print "select_fetchall sql: %s" %(sql)
items = cursor.fetchall()
desc = cursor.description
li = []
if items:
for item in items:
d = {}
i = 0
for de in desc:
d[de[0]] = item[i]
i=i+1
li.append(d);
return li
else:
return li
# 执行插入和更新
def execute(self,sql):
print "execute sql : %s" %(sql)
connection = self.get_connection()
cursor=connection.cursor()
cursor.execute(sql)
connection.commit()
通过自己的方法调用也没问题,自己的理解应该是django中使用cursor.execute执行后没有commit。
不知道是不是django的版本问题,我用的是Django-1.0.2-final,遇到类似问题的哥们可以一起讨论讨论。
更新:
经过不断尝试,终于试出解决方法,在execute后加上cursor.execute("commit")
完整代码:
from django.db import connection
cursor = connection.cursor()
cursor.execute("delete from event where id=%s",[event_id])
cursor.execute("commit")
cursor.close()
分享到:
相关推荐
python大作业课程设计基于Django的购物商城系统源码+数据库(96分以上项目).zip 代码数据库完整下载即用,无需修改确保可以运行,高分手打项目。 python大作业课程设计基于Django的购物商城系统源码+数据库(96分...
Python开发 MySQL 数据库数据结构设计03. Django配置使用 MySQL.mp4
基于Django的图书管理系统源码+数据库,基于Django的图书管理系统源码+数据库基于Django的图书管理系统源码+数据库基于Django的图书管理系统源码+数据库基于Django的图书管理系统源码+数据库基于Django的图书管理...
Django-07-数据库使用-01.rar Django-08-数据库使用-02.rar Django-09-数据库使用_03.rar Django-10-数据库使用_04.rar Django-11-数据库使用_05.rar Django-12-数据库使用_06.rar Django-13-表单_01.rar Django-13-...
django中配置MySql数据库.html
django.db.utils.OperationalError: (1045, “Access denied for user ‘账号’@’localhost’ (using password: YES)”) 错误。 这种错误指的是连接数据库时账号密码错误。 1.只需要修改setting.py文件里的...
python毕设基于django就业系统源码.zip,python毕设基于django就业系统源码.zippython毕设基于django就业系统源码.zippython毕设基于django就业系统源码.zip
Lightweight.Django.2014.11.pdf
将Django模板功能与javascript框架(如.vue或.jsx文件)的单个文件组件结合使用。 快速启动完整的前端和后端项目的样板,而无需在前端和后端中都使用rest api。 服务器端渲染使用可爱的Django,而不是通过nuxt.js...
基于python+django的在线考试系统源码+数据库.zip 95分以上高分项目源码,下载即用无需修改。 基于python+django的在线考试系统源码+数据库.zip 95分以上高分项目源码,下载即用无需修改。基于python+django的在线...
django-ldapdb, Django ldapdb,用于 Django的LDAP数据库后端 django-ldapdb django-ldapdb 是用于 Django的LDAP数据库后端,允许通过 Django 模型操作LDAP条目。它支持大多数与 Django 模型相同的api:MyModel.o
From idea to prototype, a learner's guide for web development with the Django application framework About This Book Build two real-life based projects, one based on SQL and other based on NoSQL Best ...
主要介绍了django框架使用orm实现批量更新数据的方法,结合实例形式简单分析了Django基于orm操作数据库更新数据的相关实现技巧,需要的朋友可以参考下
基于Python+Django的智能点餐系统源码+数据库(毕业设计).zip 下载即用无需修改,已获导师指导 并通过的高分项目。项目完整确保可以运行 基于Python+Django的智能点餐系统源码+数据库(毕业设计).zip 下载即用...
目 录 ...17. 第十六章:集成的子框架 django.contrib 18. 第十七章:中间件 19. 第十八章:集成已有的数据库和应用 20. 第十九章:国际化 21. 第二十章:安全 22. 本站由VCC使用Django搭建。
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的设计模式,即模型M,模版T和视图控制器V。它最初是被开发来用于管理劳伦斯出版集团旗下...在Django中Python被普遍使用,甚至包括配置文件和数据模型。
然后,使用cursor.execute(sql, [params])来执行SQL语句,使用cursor.fetchone()或者cursor.fetchall()来返回记录集。 例如: >>> from django.db import connection >>> cursor = connection.cursor
使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得...
Django中使用Mysql步骤,简要方法。Django
django view接口实现excel表导入到数据库,主要运用xlrd包读取到excel表单的内容,然后再数据库里创建excel表的数据类型。我在里面增加了一层判断,就是如果库里面有excel表里面人或数据的话就会更新改变的数据,...