永发信息网

flask-sqlalchemy 和sqlalchemy的区别

答案:3  悬赏:0  手机版
解决时间 2021-11-08 05:53
  • 提问者网友:锁深秋
  • 2021-11-07 09:34
flask-sqlalchemy 和sqlalchemy的区别
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-11-07 10:01
It aims to simplify using SQLAlchemy with Flask by providing useful
defaults and extra helpers that make it easier to accomplish common
tasks. (官网原文)
flask-sqlalchemy 在 sqlalchemy 的基础上,提供了一些常用的工具,并预设了一些默认值,帮助你更轻松地完成常见任务。
flask-sqlalchemy 用起来比直接用 sqlalchemy 方便、省事,不过有些高级一点的功能如果不了解 sqlalchemy 的话会用不好。
所以个人建议最好先直接用 sqlalchemy 工作一小段时间,感受一下 sqlalchemy 到底是怎样运行起来的。等有了一定了解后,如果觉得有必要,再改用 flask-sqlalchemy,提高编程效率。
全部回答
  • 1楼网友:千杯敬自由
  • 2021-11-07 12:34
res=db.session.query(tb.id).filter(...).all()
查询tb表id字段,多个字段就依次增加tb.id,tb.name...(这tb是已经模型化的)
取出来的res的结果是
[(1)]这样子的

纪幼淩洮锵薛根乘季称鞅次御俊丫鲍苗鄘穗殳慕
  • 2楼网友:大漠
  • 2021-11-07 11:30
flask-sqlalchemy把它的执行上下文绑定在了flask的app的context上。
但sqlalchemy本身提供了scoped_session.
如果把一个线程看成一个目录,那么其下有app.context栈和sqlalchemy.scoped_session2个资源。
现在他的实现,把sqlalchemy.scoped_session的资源放在了app.context栈下。
如果需要自己起个worker线程来处理redis的消息并写入数据库,那么flask-sqlalchemy的db对象就没有办法在自己的线程里执行了。
app.xn--teardown_appcontext,session-8x78c.xn--remove()ok-3m3p752k.">相反如果把db的实现和app的context脱离开来,就灵活多了。反正只要注册一下@app.teardown_appcontext,把session.remove()就ok了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯