用于制作,插入行和检索查询的类

时间:2013-03-07 22:51:27

标签: python sqlite

我试图模仿集体智慧的代码之一,由于一些未知错误而跌跌撞撞。除了用于检索查询的方法之外,所有方法在类中都可以正常工作。

class Connect:
  # Create the Database
    def __init__(self,dbname):
        self.con = sqlite3.connect(dbname)
  # Add the row
    def create(self,date,name,age):
        self.con.execute('create table Profile(date text, name text,age real)')
  # Lock the changes
    def commit(self):
        self.con.commit()
  # Retrive the details
    def getentry(self,table,field,value):
        cursor = self.con.execute(
                     "select * from %s where %s = '%s'" % (table,field,value))
        result_set = cursor.fetchall()
        print result_set

工作示例:

  1. 创建数据库
  2. C = Connect('test.db')

    1. 添加行
    2. C.create( '2013年3月6日', '喜悦',34)

      1. 进行更改并锁定文件
      2. C.commit()

        1. 获取行
        2. C.getentry(配置文件,名称, '喜悦')

          错误: NameError:未定义名称“个人资料”

          然后制作括号。

          C.getentry( '资料', '名称', '乐')

          结果= []

1 个答案:

答案 0 :(得分:1)

问题出在Connect.create。它创建表但不填充它,因为其定义上方的注释似乎暗示。您需要将其更新为以下内容:

def create(self,date,name,age):
    self.con.execute( 'create table Profile(date text, name text,age real)' )
    self.con.execute( "insert into Profile values('{0}','{1}','{2}')"
                      .format(date,name,age) )
    return