import MySQLdb ################ CherryClass MySql abstract: ################ function: def openConnection(self, host, user, passwd, db): self.connection=MySQLdb.connect(host, user, passwd, db) ################ function: def openConnection(self, host, user, passwd, db): self.connection=MySQLdb.connect(host, user, passwd, db) def query(self, query): c=self.connection.cursor() c.execute(query) res=c.fetchall() c.close() return res
ここで行ったことはPython MySQLdbモジュールへのCherryClassのラッパを提供しただけです。
やるべき事はMySqlから継承したCherryClassを宣言し、openConnectionメソッドを__init__メソッド内で呼び出し、クエリーを実行してその結果を得るためにqueryを使うことです。
サーバが立ち上がる時(CherryClassが実体を得る時)コネクションは自動的に開き、サーバーが死ぬまで開かれたままになります。
以下のコードはこのモジュールの使い方の例です:
use MySql CherryClass MyDb(MySql): function: def __init__(self): self.openConnection('host', 'user', 'password', 'database') CherryClass Root: mask: def index(self): <html><body> Hello, there are currently <py-eval="myDb.query('select count(*) from user')[0][0]"> use rs in the database </body></html>