【Python】吐槽SQLAlchemy

以前常在网上看到大家黑正则表达式:

如果有一个问题,你想到可以用正则表达式来解决,那么现在你有两个问题了。

刚开始我是不信的,直到我遇见了sqlalchemy. 这个鬼故事我看可以升级成2.0版了.

如果有一个问题,你想到可以用ORM来解决,那么现在你有两个问题了。

和直接使用connect,cursor畅快操作数据库的方式比起来,sqlalchemy需要更长时间的前戏.没有一点点防备,成吨的declarative_base , sessionmaker ,create_engine 鬼东西砸在了小透明的脸上.

这些都是啥?有没有必要搞这么多东西出来,开发sqlalchemy的时候程序员拿的是计件工资吧,创造的函数数量肯定与他们的工资挂钩. 像create_enginesessionmaker我认了,这是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里背景为绿色的代码不要跟着抄.不要问我是怎么知道的.

发布了552 篇原创文章 · 获赞 201 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/103776790