概述
以前常在网上看到大家黑正则表达式:
如果有一个问题,你想到可以用正则表达式来解决,那么现在你有两个问题了。
刚开始我是不信的,直到我遇见了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】吐槽SQLAlchemy所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复