+ 我要发布
我发布的 我的标签 发现
关联标签
Python MySQL SQLAlchemy
公开标签 #SQLAlchemy
如果长时间没有对MySQL进行操作(包括CRUD),为了避免占用不必要的资源,MySQL服务器会主动断开于客户端的连接。 在断开连接后,发起一个请求,就会报错 (OperationalError('(pymysql.err.OperationalError) (2006, "MySQL server has gone away (BrokenPipeError(32, \'Broken pipe\'))")'),) 找到了原因,就可以对症下药了。 调整MySQL服务器的配置参数 通过调整MySQL服务器
SQLAlchemy 中使用原生 SQL 语句执行操作时候报错 ArgumentError("Textual SQL expression 'xxx' should be explicitly declared as text... 报错时的代码如下: with session_commit_maker() as db_session: db_session.execute("update user set name='{}' where id={};".format(name, uid)) 将其改成如
有些操作使用SQLAlchemy框架里的 query, add, update, delete 操作就可以完成,但有些任务使用框架里的 CRUD 操作会很复杂,远没有直接执行原生 SQL 语句方便。前提是,熟悉掌握 SQL 语句的语法。 例如,表 user 里有个字段是 score,每次被点赞该字段的值就要加1,如果用 SQLAlchemy 的 CRUD 就会很麻烦,但是用原生 SQL 就非常简单: update user set score=score+1 where id=123; 那 SQLAlc
直接使用 SQLAlchemy 的 scalar() 就可以进行求和计算了。 session.query(func.sum(Money.amount)).filter(.....).scalar() 在介绍下查询对象时常用到的其他几种方法,包括 .one(),.all(),.scalar(),.one_or_none(),.get(),.first()等。 ▶ .one() 如果只能查询到一个结果,返回它,否则抛出异常。 没有结果时抛sqlalchemy.orm.exc.NoResultFound,有超
Python项目使用的Flask框架,操作数据库使用的 SQLAlchemy。 from sqlalchemy import Column, Integer, String, SmallInteger from sqlalchemy import func __mysql = 'mysql+pymysql://xxx@127.0.0.1:3306/xxx?charset=utf8mb4' __engine = create_engine(__mysql, pool_size=5, max_overflo
使用SQLAlchemy时报错: sqlalchemy.orm.exc.DetachedInstanceError: Instance <User at 0x809ab1f> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/bhk3) 解决方案: 在初始化数据库的代码中,将 maker = sessionmake
Python开发中,如果使用 SQLAlchemy 操作数据库来更新数据,当 query 使用的是主键而不是对象时会报错: ArgumentError("subject table for an INSERT, UPDATE or DELETE expected, got Column('id', Integer(), table=<user>, primary_key=True, nullable=False)." 数据库表名: user 数据库表对应的对象(对象是通过 __tablename__ 属
错误原因:超过1个model的 __tablename__ 定义为 “user” 解决方法1(推荐):找出 __tablename__ = "user" 的model,修改为 __tablename__ 为不同的名字 解决方法2:在 __tablename__ = "user" 后添加 __table_args__ = {'extend_existing': True} class User(BaseModel): __tablename__ = "user" __table_args__ = {'ex
1
关联标签
Python MySQL SQLAlchemy