python怎么反向输出使用SQLAlchemy定义反向关系出错如何解决?

我用SQLAlchemy建了一个SQLite数据库来存文献数據现在我想查每一篇文献的作者数量,作者和文献是分开两张表存的用文献的识别号来建立联系

我知道用SQL怎么查询,但是现在我想用SQLAlchemy來操作不使用纯SQL

文献和作者对象的定义代码如下:

你期待的结果是什么?实际看到的错误信息又是什么

我希望查询得到的结果和这个SQL楿同,返回每一篇文章的识别号及其作者数

但是用了ORM之后我可以通过WosDocument.authors来获得一篇文章的全部作者信息于是我就想是不是能够不使用join也能達到同样的效果?于是我尝试了下面的代码:

第一种方式直接就报错无法执行第二种方式只返回了一行结果,我也理解不了结果的含义昰什么

我想问用SQLAlchemy的正确写法是什么可以不使用连接查询吗?谢谢大家!

}

orm英文全称object relational mapping,就是对象映射关系程序简单来说我们类似python怎么反向输出这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的为了保证一致的使用习慣,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程語言的对象模型进行操作就可以了,而不用直接使用sql语言

我们通过pip进行安装,在windows下使用pip安装包的时候要记得使用管理员身份运行cmd不然有些操作是无法进行的。

通过import导入必要的包

我们将连接引擎放到engine里面方便后面使用
create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/數据库",其他参数)
上文当中echo=True是开启调试这样当我们执行文件的时候会提示相应的文字。

什么是元数据元数据就是描述数据的数据,举個简单的例子小明身高170cm,体重50kg性别男。其中身高体重,性别就是元数据当我们创建好连接引擎以后可以通过这个引擎抓取元数据。

通过MetaData()方法创建了metadata实例在这个方法里面带上engine的目的是绑定要连接引擎,当我们对这个metadata实例进行操作的时候就会直接连接到数据库

设定恏连接引擎和元数据,让我们向mysql里面创建表结构来进行测试

其中Table()方法用来创建表,第一个参数为表明第二是存入元数据,后面的参数使用Column()方法将数据库当中每一个字段的数据参数设置好

}

我要回帖

更多关于 python怎么反向输出 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信