python数据库连接功能

时间:2015-03-25 01:50:13

标签: python oracle

我尝试在python中为数据库连接创建一个函数。但这现在正在发挥作用。 这是我的定义代码。

def connect():
    dsn = cx_Oracle.makedsn(host='MYHOST', sid='DEVPRON', port=1521)
    conn = cx_Oracle.connect(user='root', password='***', dsn=dsn)
    cur = conn.cursor()
    return [cur,conn]

每次调用connect函数时,我都会返回conn和cur。 所以这是我的代码,当我调用函数

connect()[0].execute("insert into tbluser (fullname,nickname) values ('" + fname + "', '" + nname + "') ")
connect()[1].commit()

当我运行时没有发生错误,但是当我检查数据库时,没有插入行。请帮忙。感谢

2 个答案:

答案 0 :(得分:2)

每次调用connect函数时,都会创建与数据库服务器的新连接。因此,您的第一个调用执行查询。第二个调用为您提供连接。您正在使用此新连接,但没有任何更改。试试这个:

def connect():
    dsn = cx_Oracle.makedsn(host='MYHOST', sid='DEVPRON', port=1521)
    conn = cx_Oracle.connect(user='root', password='***', dsn=dsn)
    cur = conn.cursor()
    return cur, conn

cur, conn = connect()
cur.execute("insert into tbluser (fullname,nickname) values ('" + fname + "', '" + nname + "') ")
conn.commit()

答案 1 :(得分:0)

使用sqlalchemy也可以从python连接数据库。这是代码

from sqlalchemy import create_engine
engine = create_engine('oracle://host:port/database', echo=True)
conn = engine.connect()
result = conn.execute(query)