<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 閱讀(2699) 評論(1)  編輯  收藏 所屬分類: python

    Feedback

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

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

    主站蜘蛛池模板: 免费在线观看污网站| 18未年禁止免费观看| 亚洲国产人成精品| 亚洲精品无码专区| 在线免费视频一区二区| 国产成人精品日本亚洲11| 无码国产精品一区二区免费 | 亚洲午夜福利AV一区二区无码| 美女隐私免费视频看| 亚洲国产av一区二区三区| 一级毛片无遮挡免费全部| 亚洲午夜激情视频| 国产日韩AV免费无码一区二区 | 国产免费av一区二区三区| 极品色天使在线婷婷天堂亚洲| 日本一区二区三区日本免费| 成人亚洲国产精品久久| 亚洲男人的天堂在线va拉文| a级毛片免费观看网站| 亚洲熟妇无码另类久久久| 无码成A毛片免费| 亚洲黄色中文字幕| 无码人妻久久一区二区三区免费丨| 亚洲国产成人精品激情| 免费亚洲视频在线观看| 中国国语毛片免费观看视频| 噜噜噜亚洲色成人网站∨| 毛片免费视频播放| 特级毛片A级毛片免费播放| 亚洲欧洲自拍拍偷午夜色无码| 亚洲美女视频免费| 亚洲av永久中文无码精品| 丝袜熟女国偷自产中文字幕亚洲| 免费视频成人片在线观看| 亚洲人成网亚洲欧洲无码| 国产91精品一区二区麻豆亚洲 | 日本特黄特色aa大片免费| 中文毛片无遮挡高清免费| 亚洲福利视频一区二区三区| 国产男女猛烈无遮挡免费视频网站 | 免费一级毛片在线播放视频免费观看永久 |