`

python orm框架sqlalchemy执行更新、删除时遇到的一个bug

阅读更多
记录一下:
2012-11-02:16:30

两个月以前,公司内部技术管理层决定废弃公司使用两年的java技术,开始使用一个全新的语言来做cms系统,这门语言就是python,python不知道你听说没有,我是第一次听说,可想而知,公司里的人基本上都处于刚入门的水平,做东西,需要慢慢来。

先介绍一下基本框架,
1.sqlalchemy
2.web.py

呵呵 第一次听说,我表示很有压力,
但是没办法,硬着头皮上吧,

由于是刚开始学,所以一定会遇到很多很多的问题,下面我会一条一条的记录下来,仅作以后学习python同学的参考。

仅此纪念我对学习python的开始。

1.sqlachemy
错误内容:
<class 'sqlalchemy.exc.ArgumentError'> : Only update via a single table query is currently supported


代码内容:
 upSeg={username:'xiaoming'}
a = aliased(TmFunccolumnDict);
            db.query(a).filter(a.app_func==app_func).update(upSeg, synchronize_session=False)


基本介绍:
这条语句是用来更新TmFunccolumnDict对象所对应的表的记录,它的app_func值为app_func。
upSeg是更新操作的参数,
updata是标识更新操作,后面的参数标识是否同步参数 ,这里是False,但是没有True的值,还有两个值 fetch、evaluate,想要看具体什么意思
经进入 http://docs.sqlalchemy.org/en/rel_0_7/orm/query.html

解决办法:
更具我的解决办法,是把alaised别名去掉
直接改为 :
db.query(TmFunccolumnDict).filter(TmFunccolumnDict.app_func==app_func).update(upSeg, synchronize_session=False)


解释:
个人认为,当取用别名的时候,sqlalchemy认为这不是一个表,而是多个表,所以提示说update操作只支持单表更新,

delete()操作 同上,都有这个问题。解决方案也一样。
分享到:
评论

相关推荐

    Orm compare

    3. MyBatis:这是一个轻量级的Java ORM框架,它允许开发人员编写SQL语句,同时提供动态SQL和映射文件来处理结果集。 4. Django ORM:Django Web框架自带的ORM系统,它允许使用Python表达式进行数据库查询,简洁易用...

    SQLAlchemy-0.7.8

    SQLAlchemy是Python编程语言中的一款强大的对象关系映射(ORM)框架,它允许开发者使用Python对象来操作数据库,极大地简化了数据库操作。SQLAlchemy-0.7.8是该库的一个稳定版本,意味着它经过了充分的测试和验证,...

    Flask-SQLAlchemy-2.3.2.tar.gz

    **Flask-SQLAlchemy**是基于流行的Web开发框架**Flask**的一个扩展,它将强大的对象关系映射(ORM)库**SQLAlchemy**与Flask相结合,为Python开发者提供了便捷的数据库操作支持。在Flask应用中集成SQLAlchemy,可以...

    sqlalchemy1.0.8.tar.gz

    SqlAlchemy 是一个强大的 Python SQL 工具包和 ORM(对象关系映射)系统,它提供了全面的数据库操作接口。在Python编程中,SqlAlchemy被广泛用于处理与数据库相关的任务,如数据查询、数据模型定义、事务处理等。...

    基于python实现企业固定资产管理系统后端-源码

    通过ORM,开发者可以将数据库表与Python类关联,方便地执行CRUD(创建、读取、更新、删除)操作。 此外,系统可能还包括了错误处理和日志记录功能,例如使用Python内置的logging模块,以便追踪系统运行状况和调试...

    flask_sqlachemy连接db2,插入中文乱码,问题解决

    - **安装依赖包**:当使用Flask-SQLAlchemy连接DB2数据库时,需要安装`ibm-db`和`ibm-db-sa`两个包,以支持DB2数据库的连接。 通过以上分析和解决方案的实践,相信可以有效地解决在使用Flask-SQLAlchemy连接DB2...

    PyPI 官网下载 | sqlalchemy_clickhouse_timezone-0.1.2.tar.gz

    SQLAlchemy作为Python的ORM(对象关系映射)框架,极大地简化了数据库操作,而SQLAlchemy-Clickhouse-Timezone则是其扩展,专门针对Clickhouse数据库并支持时区处理的模块。本文将深入探讨SQLAlchemy-Clickhouse-...

    SQLAlchemy-1.4.50-cp38-cp38-win_amd64.rar

    SQLAlchemy 是一个强大的 Python SQL 工具包和对象关系映射器,它为开发者提供了全面的数据库编程接口,包括数据库连接、SQL 表达式语言、以及 ORM(对象关系映射)机制。在这个名为 "SQLAlchemy-1.4.50-cp38-cp38-...

    Python高效开发实战原代码(刘长龙)

    在Python的世界里,高效开发是每个程序员追求的目标。刘长龙的"Python高效开发实战原代码"涵盖了如何利用Python进行高效网站设计以及选择和运用Python Web框架的关键知识点。这篇文章将深入探讨这些主题,帮助你提升...

    python-guide python引言

    - **实践**:为每一个模块编写README文档,并提供API文档。 **2.5 代码测试** - **方法**:使用单元测试和集成测试确保代码质量。 - **框架**:使用`unittest`或`pytest`等框架简化测试过程。 - **覆盖率**:确保...

    Python+Flask+MySQL实现的学生培养计划管理系统.zip

    SQLAlchemy是Python的一个ORM(对象关系映射)库,它允许开发者用面向对象的方式处理数据库操作。通过定义模型类,我们可以轻松地将Python对象与数据库表对应,简化数据库操作。 五、开发流程 1. 安装环境:确保...

    Python库 | easy_db-0.5.15.tar.gz

    在Python中,与数据库交互的库有很多,如SQLite3(Python内置)、MySQLdb(MySQL)、psycopg2(PostgreSQL)以及ORM框架如SQLAlchemy和Peewee等。`easy_db` 可能作为一个轻量级的解决方案,提供了比标准DB-API更简洁...

    Python库 | dadan-0.0.1-py3.7.egg

    SQLAlchemy是Python的一个数据库工具包,提供ORM(对象关系映射)功能,简化了数据库操作。 在使用 "dadan" 这个库之前,你应该查阅相关的文档,了解其提供的功能、使用方法和API接口。如果该库没有提供官方文档,...

    Python库 | botterino-0.0.2.tar.gz

    Python库的广泛生态系统为后端开发提供了强大的支持,例如Django和Flask等Web框架,以及SQLAlchemy这样的ORM(对象关系映射)工具。 总的来说,botterino-0.0.2.tar.gz是一个Python库的压缩包,可能涉及自动化或...

    Python Flask构建微信小程序订餐系统 微信小程序工程文件

    Flask是一个基于Werkzeug WSGI工具包和Jinja2模板引擎的Python web框架。它的核心优势在于简洁和灵活性,适合快速搭建小型到中型的Web服务。在构建订餐系统时,Flask可以处理HTTP请求,提供路由映射,以及数据库...

    Python库 | cheesyutils-0.2.5.tar.gz

    CheesyUtils是一个名为"cheesyutils"的Python库,其版本为0.2.5,封装了一系列实用的工具函数,便于在Python项目中使用。这个资源以tar.gz格式提供,这是一种常见的压缩格式,通常用于打包和分发开源软件。 在...

    Python库 | gumo_datastore-0.1.6-py3-none-any.whl

    在Python中,有许多用于数据存储的库,如SQLAlchemy(ORM框架),pandas(数据分析),以及各种数据库连接库(如psycopg2 for PostgreSQL,pyodbc for SQL Server等)。`gumo_datastore` 可能是对这些功能的一种封装...

    51商城管理Python源代码

    Python有如SQLAlchemy这样的ORM(对象关系映射)工具,可以方便地进行数据库操作,降低直接SQL编程的复杂性。 4. **模板引擎**: 为了生成动态网页,系统可能使用了如Jinja2这样的模板引擎,允许开发者使用模板...

    Python库 | aldjemy-0.6.0-py3-none-any.whl

    aldjemy的核心功能是作为一个ORM(Object-Relational Mapping)工具,它为Python程序员提供了一种与关系数据库交互的方式,使得在Python对象和数据库表之间建立映射成为可能。ORM技术的主要优点在于,它允许开发者...

    PyPI 官网下载 | hwp-py-0.0.1.tar.gz

    在Python的后端开发中,这样的库可以与其他技术,如Web框架Django、Flask等,数据库ORM如SQLAlchemy,以及网络请求库如requests结合使用,构建出强大的后台服务。例如,一个基于Python的Web应用可以接收上传的HWP...

Global site tag (gtag.js) - Google Analytics