草庐IT

SqlAlchemy

全部标签

python - 我应该如何在 Bottle 应用程序中使用 sqlalchemy session 来避免 'Lost connection to MySQL server during query'

我的bottle/sqlalchemy应用托管在pythonanywhere.com上,不确定这是否重要,我希望不会。在我离开一段时间后,该应用程序抛出“查询期间与MySQL服务器失去连接”。然后我刷新它,它工作正常。请注意,我也有相同的查询实现没有sqlachemy,只使用MySQLdb。该实现始终运行良好,它从不抛出异常,因为它每次都会建立一个新连接。我假设,在像pythonanywhere这样的托管环境中,我无法摆弄可能影响此错误的mysql配置,例如max_allowed_pa​​cket或超时。我应该如何创建sqlalchemy引擎和session来解决这个问题?bottle

python - 带有 MySQL 的 pandas 可以支持文本索引吗?

如果我尝试在MySQL数据库中存储带有文本索引的数据框,我会收到错误消息“key规范中使用的BLOB/TEXT列没有key长度”,例如:importpandasaspdimportsqlalchemyassadf=pd.DataFrame({'Id':['AJP2008H','BFA2010Z'],'Date':pd.to_datetime(['2010-05-05','2010-07-05']),'Value':[74.2,52.3]})df.set_index(['Id','Date'],inplace=True)engine=sa.create_engine(db_connect

mysql - python : sqlalchemy - how do I ensure connection not stale using new event system

我在python中使用sqlalchemy包。在对现有表执行自动加载后,我有一个操作需要一些时间才能执行。当我尝试使用连接时,这会导致以下错误:sqlalchemy.exc.OperationalError:(OperationalError)(2006,'MySQLserverhasgoneaway')我有一个简单的实用程序函数,它执行多次插入:definsert_data(data_2_insert,table_name):engine=create_engine('mysql://blah:blah123@localhost/dbname')#MetadataisaTableca

python - 如果我只打算使用 MySQL,并且速度是重中之重,那么是否有令人信服的理由使用 SQLAlchemy?

如果我只使用MySQL,SQLAlchemy似乎真的很重量级。为什么有令人信服的理由支持/反对在仅使用MySQL的应用程序中使用SQLAlchemy。 最佳答案 ORM意味着您的OO应用程序在被解释为对象交互时实际上是有意义的。没有ORM意味着您必须沉迷于SQL和对象之间的阻抗不匹配。在没有ORM的情况下工作意味着在SQL查询结果集、单个SQL语句和对象之间映射大量冗余代码。SQLAchemy将您的应用程序干净地划分为交互的对象和(今天)恰好是关系数据库的持久性机制。借助SQLAlchemy,您有机会将核心模型和处理与SQLRDBM

python - 如何使用不带 SQLAlchemy 的 MySQL 蓝图修复 Flask 项目中的循环导入?

所以我有主.py文件,其中创建和配置了Flask应用程序对象,并初始化了MySQL。然后我想注册一些蓝图。fromflaskimportFlaskfromflaskext.mysqlimportMySQLapp=Flask(__name__)mysql=MySQL()app.config['MYSQL_DATABASE_USER']='root'app.config['MYSQL_DATABASE_PASSWORD']='root'app.config['MYSQL_DATABASE_DB']='EmpData'app.config['MYSQL_DATABASE_HOST']='lo

python - 在 SQLAlchemy 中从集合中删除一个对象

我将大量专利数据存储在MySQL数据库中,并通过SQLAlchemy与其进行交互。我在Patent类中有一个集合,代表受让人列表(被分配专利的公司):assignees=relationship('Company',secondary=patent_company_table,backref='patents')我正在处理存储在数据库中的一些对象,对于专利对象p,我想从中删除一些受让人a(公司对象)>p的受让人列表。基于http://docs.sqlalchemy.org/en/latest/orm/session.html#deleting-from-collections,似乎调用

mysql - sqlalchemy:如何在mysql中使用自动增量添加表行

我正在使用sqlalchemy0.8和mysql5.5我有一个简单的表,其ORM定义如下所示classTrackingTable(db.Model):__tablename__='tracking_table'trackid=db.Column(db.BigInteger,primary_key=True)custid=db.Column(db.String(20),db.ForeignKey('customer.id'))tracktime=db.Column(db.DateTime,nullable=False)formdata=db.Column(db.String(100),n

python - 线程和 SQLAlchemy session

我知道这个问题已被问过几次,但我仍然不确定scoped_session与线程的用法。基本上,我有一个包含10个工作线程的应用程序。我有一个连接池大小为11的Engine。每个线程都有自己的session,并且不需要在线程的session之间共享信息(如果可以的话,那会很好,但我已经创建了一个解决方法)。最后,我在主线程中使用SQLAlchemyCore来处理复杂的SQL语句,这就是为什么我在连接池中有11个线程。我正在使用MySQL,我的pool_recycle设置为3600。我不断收到错误:(OperationalError)(2013,“查询期间与MySQL服务器失去连接”)当我只

python - sqlalchemy并发更新问题

我有一个表,jobs,在MySQL中包含字段id、rank和日期时间startedInnoDB数据库。每次一个进程获得一个作业时,它都会“检查”该作业并将其标记为已启动,这样就不会有其他进程处理它。我希望具有session的单个进程能够:找到排名最高的工作将此作业的开始字段更新为当前时间戳不会冒任何其他session也可能选择并开始排名最高的工作的风险。其他session也在任何给定时间更改排名。这是我的尝试:session.execute("LOCKTABLESjobsREAD")next_job=session.query(Jobs).\filter(Jobs.started==N

python - SQLAlchemy:选择多个表

我想优化我的数据库查询:link_list=select(columns=[link_table.c.rating,link_table.c.url,link_table.c.donations_in],whereclause=and_(not_(link_table.c.id.in_(select(columns=[request_table.c.recipient],whereclause=request_table.c.donator==donator.id).as_scalar())),link_table.c.id!=donator.id,),limit=20,).execu