第一次python用户在这里,温柔.... ;-)
OSX上的Python 2.6
有一个类只有一些围绕sqlite包装...这里是
from pysqlite2 import dbapi2 as sqlite
class SqliteDB:
connection = ''
curser = ''
def connect(self):
try:
self.connection = sqlite.connect("pagespeed.sqlite")
self.curser = self.connection.cursor()
except sqlite.Error, e:
print "Ooops: ", e.args[0]
def find_or_create(self, table, column, value):
self.curser.execute("SELECT id FROM ? WHERE ?=? LIMIT 1", (table, column, value))
records = self.curser.fetchall()
if records.count() == false:
self.curser.execute("INSERT into ? SET ?=?", (table, column, value))
self.curser.execute("SELECT id FROM ? WHERE ?=? LIMIT 1", (table, column, value))
print records
Run Code Online (Sandbox Code Playgroud)
我在一个单独的文件中这样称呼它
import sqlitedb
def main():
db = sqlitedb.SqliteDB()
db.connect
url_id = db.find_or_create('urls', 'url', 'http://www.example.com')
Run Code Online (Sandbox Code Playgroud)
但是我得到这个错误,
Traceback (most recent call last):
File "update_urls.py", line 17, in <module>
main()
File "update_urls.py", line 11, in main
url_id = db.find_or_create('urls', 'url', 'http://www.example.com')
File "....../sqlitedb.py", line 16, in find_or_create
self.curser.execute("SELECT id FROM ? WHERE ?=? LIMIT 1", (table, column, value))
AttributeError: 'str' object has no attribute 'execute'
Run Code Online (Sandbox Code Playgroud)
所以它几乎就像self.curser没有得到一个诅咒,或者自我不正确?
不确定我在做什么就在这里......
干杯
我不知道出了什么问题,但至少:
db.connect
Run Code Online (Sandbox Code Playgroud)
应该
db.connect()
Run Code Online (Sandbox Code Playgroud)
例如调用函数.
好.S.Lott有答案,我刚发现另一个bug :)
| 归档时间: |
|
| 查看次数: |
8509 次 |
| 最近记录: |