Maison  >  Questions et réponses  >  le corps du texte

pyspider - python这个类中的方法到底有什么用处啊

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...

怪我咯怪我咯2713 Il y a quelques jours577

répondre à tous(1)je répondrai

  • PHP中文网

    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`

    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()
    

    répondre
    0
  • Annulerrépondre