直接执行 custom SQL 不起作用但没有显示错误
Executing custom SQL directly does not work but shows no error
我的 views.py
中有一个函数可以直接在数据库中执行 sql 查询,就像这样
cursor.execute("INSERT INTO table1(field1,field2,field3) VALUES(%s,%s,%s)",[value1,value2,value3])
cursor.execute("UPDATE table1 SET field1=%s,field2=%s,field3=%s WHERE field4=%s",[value1,value2,value3,value4])
问题是当函数 运行 没有显示错误并且在调试模式下 returns "POST /something/20/ HTTP/1.1" 200
但是在数据库中数据没有保存。我使用 django 1.8.19,django-pyodbc-azure 1.8.17,数据库在 sql 服务器 2016 上。非常感谢任何帮助。
如果您使用 Django 进行这样的连接:
from django.db import connection
cursor = connection.cursor()
那么正常情况下,auto-commit应该是开着的。但值得测试:在你的两个 cursor.execute()
语句之后,你可以放一个 cursor.close()
和 print("CURSOR CLOSED!")
?
然后看看有没有插入数据,如果在你的runserver
.
中得到了print()
语句
如果 autocommit
没有打开,您可以在 DATABASES
选项中激活它。它在 django-pyodbc-azure
中记录为此处的一个选项:
https://pypi.org/project/django-pyodbc-azure/
祝你好运!
我的 views.py
中有一个函数可以直接在数据库中执行 sql 查询,就像这样
cursor.execute("INSERT INTO table1(field1,field2,field3) VALUES(%s,%s,%s)",[value1,value2,value3])
cursor.execute("UPDATE table1 SET field1=%s,field2=%s,field3=%s WHERE field4=%s",[value1,value2,value3,value4])
问题是当函数 运行 没有显示错误并且在调试模式下 returns "POST /something/20/ HTTP/1.1" 200
但是在数据库中数据没有保存。我使用 django 1.8.19,django-pyodbc-azure 1.8.17,数据库在 sql 服务器 2016 上。非常感谢任何帮助。
如果您使用 Django 进行这样的连接:
from django.db import connection
cursor = connection.cursor()
那么正常情况下,auto-commit应该是开着的。但值得测试:在你的两个 cursor.execute()
语句之后,你可以放一个 cursor.close()
和 print("CURSOR CLOSED!")
?
然后看看有没有插入数据,如果在你的runserver
.
print()
语句
如果 autocommit
没有打开,您可以在 DATABASES
选项中激活它。它在 django-pyodbc-azure
中记录为此处的一个选项:
https://pypi.org/project/django-pyodbc-azure/
祝你好运!