【发布时间】:2018-05-22 17:08:54
【问题描述】:
我需要在 Flask 中创建一个简单的项目。我不想使用 SQLAlchemy。在下面的代码 sn-p 中,连接到服务器的每个人都使用相同的连接对象,但对于每个请求,都会创建一个新的游标对象。我问这个是因为我以前从未以这种方式使用过 Python DB api。这是正确的吗?我应该为每个请求创建一个新的连接对象还是为每个请求或下面的方法使用相同的连接和游标对象。哪一个是正确的?
import mysql.connector
from flask import Flask, request
app = Flask(__name__)
try:
con = mysql.connector.connect(user='root',password='',host='localhost',database='pywork')
except mysql.connector.Error as err:
print("Something went wrong")
@app.route('/')
def home():
cursor = con.cursor()
cursor.execute("INSERT INTO table_name VALUES(NULL,'test record')")
con.commit()
cursor.close()
return ""
【问题讨论】:
-
在反映事务(如果可用)绑定到连接而不是游标之后,一旦每个请求的数据库命令需要一个事务以避免您的数据库,您可能应该为每个请求建立一个单独的连接处于不一致的状态。
-
@moooeeeep 是的,你是对的。迟早我们使用连接对象使用commit方法执行Sql查询。我没有想到这一点。感谢您的帮助。
标签: python flask wsgi python-db-api