escape
是给string添加``符号。比如你创建的table或者column里有空白字符时。
create table `hello world tb` (`column name1` INT NOT NULL AUTO_INCREMENT PRIMARY KEY)
错误的查询:select column name1 from hello world tb
正确的查询:select
`column name1
` from
`hello world tb
`
dbcur
这个函数抛出未实现这个异常,目的是为了充当接口,由子类去实现。Python里面没有接口这个概念,所以定义接口时,可以采用这种方式。DbBase只付责构建sql语句,具体使用何种数据库由子类实现,好处是可以适配不同的数据库。
源码:
if __name__ == "__main__":
import sqlite3
class DB(BaseDB):
__tablename__ = "test"
placeholder = "?"
def __init__(self):
self.conn = sqlite3.connect(":memory:")
cursor = self.conn.cursor()
cursor.execute(
'''CREATE TABLE `%s` (id INTEGER PRIMARY KEY AUTOINCREMENT, name, age)'''
% self.__tablename__
)
@property
def dbcur(self):
return self.conn.cursor()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…