当前位置:   article > 正文

python 查询sqlserver 视图_利用sqlalchemy 查询视图

python读取sqlserver视图信息

这个问题 google 百度 中英文搜了一上午。最新的回答还是 7年前。最后自己靠着官方文档的自己改出来一个比较方便的方法

使用环境

python == 3.7.0

SQLAlchemy === 1.2.14

sqlacodegen === 2.0.1

生成视图对应的ORM类

首先对于已经有数据表的项目来说可以使用sqlacodegen来快速构建表对应的类命令如下

sqlacodegen --noviews --noconstraints --outfile=/root/models.py mssql+pymssql://sa:123456@locahost/test?charset=utf8

--noviews 表示不会生成视图对应的类 这里当然要取消,所以说最终命令为

sqlacodegen --noconstraints --outfile=models.py mysql+pymysql://sa:123456@locahost/test?charset=utf8

通过命令会生成一个类似这样的视图对应的ORM类

metadata = Base.metadata

t_vw_test = Table(

'vw_test', metadata,

Column('Id', Integer),

Column('Date',DateTime),

)

如果没有数据表希望通过sqlalchemy生成数据表的话这里没有尝试

查询视图

查询视图的方法基本和查询普通表相同只注意 表的字段需要通过columns获取

def userInfo(self, Goodsid):

ret = self.conn.query(

#获取整行

sqlaclORM.t_vw_test

#获取单个字段数据

#sqlaclORM.t_vw_test.columns["Date"]

#添加filter查询条件

).filter(sqlaclORM.t_vw_test.columns["Id"] == 1).first()

return ret

对于返回到的值只有获取整个字段的数据的方法才能通过.对应字段获取对应的值

#获取的整行数据

date = ret.Date

获取单个需通过数组下标的方式

def userInfo(self, Goodsid):

ret = self.conn.query(

#获取单个字段数据

sqlaclORM.t_vw_test.columns["Id"]

sqlaclORM.t_vw_test.columns["Date"]

#添加filter查询条件

).filter(sqlaclORM.t_vw_test.columns["Id"] == 1).first()

return ret

date = ret[1]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/527497
推荐阅读
相关标签
  

闽ICP备14008679号