pyspider - python这个类中的方法到底有什么用处啊
怪我咯
怪我咯 2017-04-18 10:26:38
0
1
631
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...

怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(1)
洪涛

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`

dbcurCette 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()
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal