cari

Rumah  >  Soal Jawab  >  teks badan

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

怪我咯怪我咯2875 hari yang lalu654

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:28:38

    escape ialah untuk menambah simbol `` pada rentetan. Contohnya, apabila terdapat aksara kosong dalam jadual atau lajur yang anda buat.

    create table `hello world tb` (`column name1` INT NOT NULL AUTO_INCREMENT PRIMARY KEY)
    

    Pertanyaan salah: select column name1 from hello world tb
    Pertanyaan betul: select `column name1` from `hello world tb`

    dbcurFungsi ini membuang pengecualian yang tidak dilaksanakan Tujuannya adalah untuk bertindak sebagai antara muka dan dilaksanakan oleh subkelas. Tiada konsep antara muka dalam Python, jadi kaedah ini boleh digunakan apabila mentakrifkan antara muka. DbBase hanya bertanggungjawab untuk membina penyata sql Pangkalan data khusus yang akan digunakan dilaksanakan oleh subkelas Kelebihannya ialah ia boleh menyesuaikan diri dengan pangkalan data yang berbeza.

    Kod sumber:

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

    balas
    0
  • Batalbalas