【Python】吐槽SQLAlchemy
以前常在網上看到大家黑正則表達式:
如果有一個問題,你想到可以用正則表達式來解決,那么現在你有兩個問題了。
剛開始我是不信的,直到我遇見了sqlalchemy. 這個鬼故事我看可以升級成2.0版了.
如果有一個問題,你想到可以用ORM來解決,那么現在你有兩個問題了。
和直接使用connect,cursor暢快操作數據庫的方式比起來,sqlalchemy需要更長時間的前戲.沒有一點點防備,成噸的declarative_base , sessionmaker ,create_engine 鬼東西砸在了小透明的臉上.
這些都是啥?有沒有必要搞這么多東西出來,開發sqlalchemy的時候程序員拿的是計件工資吧,創造的函數數量肯定與他們的工資掛鉤. 像create_engine和sessionmaker我認了,這是orm們的標配,搞成這個樣子也是迫不得已. 我真心感覺它倆可以攢成一個,主打SessionMaker,engine作為SessionMaker的一個參數傳入.
這declarative_base就更坑爹了. 動用declarative長達11位的單詞,只為了臨時現做一個Base給其他的Model當基類.
from sqlalchemy.ext.declarative import declarative_base #臥槽,這個導入這么長 ,鬼才記得住. Base=declarative_base() #臥槽臥槽,現做Base你說浪不浪. class Foo(Base):pass這里該再拿出點誠意來.提前把Base放到sqlalchemy包的__init__.py里去初始化. 大家用Base的時候直接import進來.
__init__.py #藏在這里,我們不看它 Base=declarative_base() from sqlalchemy import BASE #這樣多么的清爽 class Foo(BASE):pass誰要用定制BASE的時候,再去弄declarative_base()進來.
我理想中的sqlalchemy里只需要import進來一個SessionMaker,一個Base就可以工作了. SessionMaker一看就知道是做session的,做出來的session就當cursor那么用. Base標配不用設置,就是給模型當基類的.
另外,sqlalchemy的Tutorial寫得也實在夠嗆 跟著教程做到定義Model那里,看見教程里忽然修改了一下字段的長度.我也學著修改了一下字段的長度,然后我就翻了車. Tutorial:怪我咯? 在這里提醒一下大家:sqlalchemy tutorial里背景為綠色的代碼不要跟著抄.不要問我是怎么知道的.
總結
以上是生活随笔為你收集整理的【Python】吐槽SQLAlchemy的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python】Python中str()
- 下一篇: 【Python】SQLAlchemy:s