Maison > Questions et réponses > le corps du texte
class BaseDB:
'''
BaseDB
dbcur should be overwirte
'''
__tablename__ = None
placeholder = '%s'
maxlimit = -1
@staticmethod
def escape(string):
return '`%s`' % string
@property
def dbcur(self):
raise NotImplementedError
escape函数是干什么的,看起来像是返回一段字符串
dbcur怎么用来调用的呢,上面说dbcur应该重写,在子类中重写吗,然后怎么调用啊
pyspider代码
https://github.com/binux/pysp...
PHP中文网2017-04-18 10:28:38
escape
consiste à ajouter le symbole `` à la chaîne. Par exemple, lorsqu'il y a des caractères vides dans le tableau ou la colonne que vous avez créé.
create table `hello world tb` (`column name1` INT NOT NULL AUTO_INCREMENT PRIMARY KEY)
Requête incorrecte : select column name1 from hello world tb
Requête correcte : select
`column name1
` from
`hello world tb
`
dbcur
Cette fonction lève l'exception non implémentée. Le but est d'agir comme une interface et d'être implémentée par des sous-classes. Il n'y a pas de notion d'interface en Python, cette méthode peut donc être utilisée lors de la définition d'une interface. DbBase est uniquement responsable de la construction des instructions SQL. La base de données spécifique à utiliser est implémentée par des sous-classes. L'avantage est qu'elle peut s'adapter à différentes bases de données.
Code source :
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()