100 行代碼還你一個 Python ORM

jopen 9年前發布 | 13K 次閱讀 Python Python開發

工作中難免有遇到 MySQL 歐巴的時候,奈何我是個記性不大好的人,臨筆忘詞,只能祭出谷歌大法,于是想著造個小破輪子,優雅地解決 Python 連接 MySQL 的問題。

這個輪子一定不要像 sqlalchemy 那么復雜,也不需要像 Django 的 ORM 那么豐富,就像一碗白米飯,管你吃飽,還為你解決三大問題:

  1. 輕松連接 MySQL
  2. 數據結構到模型的映射
  3. 滿足增改查的基本功能,避免手寫SQL

創建連接

from data_handler import Database

db_config = { 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': '123456', 'database': 'test' }
Database.connect(**db_config)

定義模型

from data_handler import Model, Field class TestModel(Model): db_table = 'test' a = Field()
  b = Field()

插入

test = TestModel()
test.a = 5 test.b = 'john' test.save()

查詢

for r in TestModel.where(a=5, b='john').select(): print r.a print r.b

計數

print TestModel.where(a=5, b='john').count()

更新

TestModel.where(a=5, b='john').update(a=1)

復雜查詢請使用raw sql

from data_handler import execute_raw_sql

results = execute_raw_sql('select b, count(*) from test where b = %s group by b;', (1,)) for val, cnt in results: print val, cnt

代碼放GitHub了 --> QuickORM

來自:建造者說

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!