草庐IT

SqlAlchemy

全部标签

mysql - 与许多用户一起使用 Plone 4 和 pas.plugins.sqlalchemy

我一直在使用pas.plugins.sqlalchemy使用MySQL为身份验证和成员数据存储提供RDBMS后端。身份验证工作完美,成员数据在RDBMS上正确存储和检索。当前用户超过20.000但是,用户枚举需要很长时间。我已经检查了Plone控制面板/用户和组部分中的“许多用户”,但即使是简单的用户搜索也需要近乎无限的时间。通过调试plugin.py脚本,我注意到enumerateUsers()被调用的次数与存储的用户数一样多;因此,完成一个简单的搜索请求需要大量的CPU时间,因为查询与每个用户名匹配,一次一个用户,一次一个查询。我是不是漏掉了什么?pas.plugins.sqlal

python - MySQL全文搜索与SQLAlchemy的正确使用

我希望能够在我的一个SQLAlchemy映射对象的多个文本字段中进行全文搜索。我还希望我的映射对象支持外键和事务。我计划使用MySQL运行全文搜索。但是,据我所知,MySQL只能对MyISAM表进行全文搜索,不支持事务和外键。为了实现我的目标,我计划创建两个表。我的代码看起来像这样:classUser(Base):__tablename__='users'id=Column(Integer,primary_key=True)name=Column(String(50))description=Column(Text)users_myisam=Table('users_myisam',B

python - Flask-SQLAlchemy 左外连接过滤查询

最初我试图做一个“右外连接”,但一旦我发现它不受支持,我就开始着手从左连接。但是,我无法准确地弄清楚如何编写我需要的内容。基本上我有两个表,Table_1和Table_2我需要Table_1中的所有行,其中column_c等于1。此外,我需要Table_2中的所有行,其中column_b尚未在Table1中。视觉上看起来像这样:**Table_1**column_a(aandbarethecolumn_b(primarykey.column_c**Table_2**column_b这就是我用SQL编写它的方式:SELECT*FROM(SELECT*FROMTable_1WHEREcol

mysql - Flask-SQLAlchemy - 即时连接到多个数据库

我有一个flaskwebapp,用户可以在其中连接到他们自己的mysql数据库并查询他们自己的表使用flask-sqlalchemy创建多个连接(到不同的数据库)的最佳方法是什么。似乎需要使用scoped_session和sessionmaker来完成,但我似乎无法理解它。也是问题的第二部分,一旦我为其中一个用户创建到mysql数据库的连接,我如何在请求之间保持连接?目前,我将每个用户的连接字符串放在flasksession变量上,并且在每个新请求中,我都这样创建引擎和连接engine=create_engine(connection_string,convert_unicode=Tr

python - 将 SQLAlchemy ORM 用于非主键、唯一、自动递增的 id

当我运行以下代码时,我希望first_name和last_name是复合主键,id是该行的自动递增索引,但不充当主键,因为那里有信息在表的其余部分是我需要定义它的唯一性,而不是给定的ID。Base=declarative_base()Session=sessionmaker(bind=db)session=Session()classPerson(Base):__tablename__="people"id=Column(Integer,index=True,unique=True,autoincrement=True,primary_key=False)first_name=Colu

python - InvalidRequestError : Ambiguous column name '***' in result set, 当请求对 mysqldb 有效时?

我的代码如下:s=DBSession()r=s.query(Food,FoodCategory).filter(Food.category_id==FoodCategory.id).first()此查询引发异常:sqlalchemy.exc.InvalidRequestError:Ambiguouscolumnname'food.category_id'inresultset我直接在mysql数据库中尝试查询,它可以正常工作。我还打印了sqlalchey查询。是的,有相同的标签,“food.category_idasfood_category_id”和“food_category.id

python - 将 Pandas 数据框上传到 MySQL 数据库后如何获取列的自动增量值

我有一个PandasDataFrame(称为df),我想将其上传到MySql数据库。数据框有[A、B、C]列,数据库中的表有[ID列,A、B、C]。数据库中的ID列是自动递增的主键。我可以使用df.to_sql('table_name',engine)命令将数据帧上传到数据库。但是,这没有给我任何关于数据库分配给传入数据的ID列的值的信息。我获得此信息的唯一方法是使用A、B、C列的值查询数据库:selectID,A,B,Cfromdb_tablewhere(A,B,C)in((x1,y1,z1),(x2,y2,z2),...)但是,当我插入大量数据时,此查询需要很长时间。是否有更简单快

python - 在 Flask + SQLAlchemy 中设置一对一关系

我正在尝试在两个表之间建立关系,这样我就可以访问obj1.obj2.name,其中obj1是一个表,obj2是另一个表。关系是一对一的(一个人对一个地理区域)#Tableone(Person)classPerson(db.Model):id=db.Column(db.Integer,primary_key=True)name=db.Column(db.String(100))region=db.Column(db.Integer,db.ForeignKey('region.id'))#Tabletwo(Region)classRegion(db.Model):id=db.Column(

python - Flask-SQLAlchemy with_for_update() 行锁

我有一个名为“User”的模型,“User”有“Money”。存在多个session可以同时读取模型“User”并更新“money”的场景。session2应在session1成功更新后读取“money”值。我试图在更新时锁定“用户”行。这是我的代码。user=User.query.with_for_update().filter_by(id=userid).first()print('000000')before_money=user.moneyprint('111111')time.sleep(1)user.money-=0.1print('User:'+str(user.id)+

python - 将 SSL 与 SQLAlchemy 结合使用

我最近将我的项目更改为使用SQLAlchemy,并且我的项目运行良好,它使用了外部MySQL服务器。现在我正在尝试使用具有SSLCA的不同MySQL服务器,但它无法连接。(它确实使用MySQLWorkbench连接,所以证书应该没问题)我正在使用以下代码:ssl_args={'ssl':{'ca':ca_path}}engine=create_engine("mysql+pymysql://:@/",connect_args=ssl_args)我收到以下错误:Can'tconnecttoMySQLserveron'\addr\'([WinError10054]Anexistingcon