<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    擴展Python MySQLdb Cursor

    Python shell下操作mysql一直使用MySqldb。
    其默認的Cursor Class是使用tuple(元組)作為數據存儲對象的,操作非常不便
    1 = cursor.fetchone()
    2 print(p[0], p[1])
    如果有十幾個字段,光是數數位數,就把我數暈了。

    當然,MySqldb Cursor Class本身就提供了擴展,我們可以切換成DictCurosor作為默認數據存儲對象,如
    MySQLdb.connect(host='127.0.0.1', user='sample', passwd='123456', db='sample', cursorclass=DictCursor, charset='utf8')
    #
    = cursor.fetchone()
    print(p['id'], p['name'])
    字典的方式優于元祖。

    但是,"[]"這個符號寫寫比較麻煩,并且我編碼風格帶有強烈的Java習慣,一直喜歡類似"p.id","p.name"的寫法。
    于是,擴展之
    1. 擴展Dict類,使其支持"."方式:
     1 class Dict(dict):
     2     
     3     def __getattr__(self, key):
     4         return self[key]
     5     
     6     def __setattr__(self, key, value):
     7         self[key] = value
     8     
     9     def __delattr__(self, key):
    10         del self[key]
    2. 擴展Curosor,使其取得的數據使用Dict類:
     1 class Cursor(CursorStoreResultMixIn, BaseCursor):
     2 
     3     _fetch_type = 1
     4 
     5     def fetchone(self):
     6         return Dict(CursorStoreResultMixIn.fetchone(self))
     7 
     8     def fetchmany(self, size=None):
     9         return (Dict(r) for r in CursorStoreResultMixIn.fetchmany(self, size))
    10 
    11     def fetchall(self):
    12         return (Dict(r) for r in CursorStoreResultMixIn.fetchall(self))

    這下,就符合我的習慣了:
    1 MySQLdb.connect(host='127.0.0.1', user='sample', passwd='123456', db='sample', cursorclass=Cursor, charset='utf8')
    2 #
    3 = cursor.fetchone()
    4 print(p.id, p.name)

    posted on 2011-06-18 00:41 stone2083 閱讀(2701) 評論(1)  編輯  收藏 所屬分類: python

    Feedback

    # re: 擴展Python MySQLdb Cursor 2011-06-18 09:30 步步為營

    不錯,學習了  回復  更多評論   

    主站蜘蛛池模板: 亚洲av综合avav中文| 无码专区一va亚洲v专区在线| 亚洲AV日韩AV高潮无码专区| 18禁在线无遮挡免费观看网站| 亚洲人成人无码网www电影首页| 九九全国免费视频| 亚洲女同成av人片在线观看| 国产一级在线免费观看| 亚洲av无码国产精品色午夜字幕 | 综合久久久久久中文字幕亚洲国产国产综合一区首 | 国产精品99精品久久免费| 图图资源网亚洲综合网站| 99久久免费观看| 麻豆狠色伊人亚洲综合网站| 四虎在线免费播放| 免费一区二区三区在线视频| 亚洲国产精品狼友中文久久久| 国产乱妇高清无乱码免费| 亚洲Aⅴ无码专区在线观看q| 中文字幕免费在线看线人| 亚洲色大网站WWW永久网站| 国产嫩草影院精品免费网址| 久久www免费人成看国产片| 亚洲综合日韩中文字幕v在线| 青娱分类视频精品免费2| 亚洲a∨国产av综合av下载| ZZIJZZIJ亚洲日本少妇JIZJIZ | av无码国产在线看免费网站| 亚洲精品午夜国产va久久| 亚洲 自拍 另类小说综合图区| a级特黄毛片免费观看| 亚洲香蕉在线观看| 亚洲精品视频在线观看你懂的| 亚欧免费一级毛片| 亚洲人成电影网站色| 亚洲小说区图片区另类春色| 免费在线视频你懂的| 羞羞漫画登录页面免费| 亚洲成在人天堂一区二区| 热99re久久精品精品免费| 男女午夜24式免费视频|