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

怪我咯
怪我咯

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

membalas semua(1)
洪涛

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()
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan