草庐IT

SQLALCHEMY_TRACK_MODIFICATIONS

全部标签

python - SQLAlchemy Group By 具有完整的子对象

想象一下下面的Media表:|site|show_id|time||---------------------|-------||CNN|1|'a'||ABC|2|'b'||ABC|5|'c'||CNN|3|'d'||NBC|4|'e'||NBC|5|'f'|--------------------------------我想遍历按show_id分组的查询结果并试过这个查询:listings=session.query(Media).filter(Media.site=="CNN").group_by(Media.show_id).all()下面是我希望如何迭代结果:forshowti

python - SQLAlchemy 查询是否容易受到注入(inject)攻击?

我有以下使用like搜索博客的查询。我不确定这样做是否会使自己容易受到SQL注入(inject)攻击。SQLAlchemy如何处理这个问题?安全吗?search_results=Blog.query.with_entities(Blog.blog_title).filter(Blog.blog_title.like("%"+searchQuery['queryText']+"%")).all() 最佳答案 无论您使用什么数据库(sqlite3、psycopg2等),底层的db-api库都会转义参数。SQLAlchemy只是将语句和参

python - 如何使用 WTForms 和 SQLAlchemy 更新多对多数据?

我在使用FlaskFramework构建应用程序时遇到了一个小问题。我正在尝试创建一个简单的用户+权限模块。为了存档它,我在Users和Permissions表之间建立了多对多关系。这是我的模型、形式和路线型号user_perm=db.Table('user_perm',db.Column('user_id',db.Integer,db.ForeignKey('user.id')),db.Column('perm_id',db.Integer,db.ForeignKey('permissions.id')))classUser(db.Model):__tablename__='user

python - sqlalchemy 对动态惰性关系的条件多重过滤器

我在以下模型中使用sqlalchemyclassPage(db.Model):id=..posts=db.relationship('Post',lazy='dynamic')classPost(db.Model):id=..page_id=..author=db.Column(db.String)date=db.Column(db.DateTime)在Page类中,我有一个方法可以获取特定日期和作者的页面帖子,看起来像这样defauthor_posts(author,start_date=None,end_date=None):p=self.posts.filter(Post.aut

Python 'startswith' 等同于 SqlAlchemy

我有一个字符串,我需要找到所有具有匹配前缀的记录:path='/abc/123/456'session.query(Site).filter(path.startswith(Site.path_prefix))当path_prefix等于时,以下记录将匹配:/abc/ab/abc/123但不是:/asd/abc/123/456/789/kjk在不切换到python的情况下,这是否可以通过SqlAlchemy实现? 最佳答案 如果将path变量包装在bindparam()object中然后你可以像对待任何列一样对待它,包括使用.con

python - sqlalchemy:在日期时间列上应用类似 SQL 的 date() 函数

我想按日期分组并使用sqlalchemy计算id的结果数。不幸的是,我的包含日期信息的列created_datetime是一个日期时间,我想使用类似的sql函数按日期分组(created_datetime)为了按日期分组。这是我目前所拥有的......conn=engine.connect()s=my_db.my_table.alias()q=select([s.c.id]).\group_by(s.c.created_datetime).\count()result=conn.execute(q)foriinresult:print(i)conn.close()

python - 我如何在 SQLAlchemy 中查询由 JSON 列过滤的数据?

我正在使用Flask和flask-SQLAlchemy编写一个应用程序。我有一个models.py文件如下fromsqlalchemy.dialects.postgresqlimportJSONclassCustom(db.Model):__tablename__='custom'data=db.Column(JSON)data字段的值是这样的:[{"type":"astring","value":"valuestring"},{"type":"another","value":"val"},...]现在我想查询所有Custom对象,它们的data字段包含这样的对象{"type":"a

python - SQLAlchemy 急切加载多个关系

SQLAlchemy支持关系的预加载,它基本上是一个JOIN语句。但是,如果一个模型有两个或多个关系,它可能是一个非常大的连接。例如,classProduct(Base):__tablename__='product'id=Column(Integer,primary_key=True,autoincrement=True)name=Column(String(255),nullable=False)orders=relationship('Order',backref='product',cascade='all')tags=relationship('Tag',secondary=

python - SqlAlchemy:过滤以匹配列表中的所有值而不是任何值?

我想查询联结表中列aID的值匹配ID列表的所有值ids=[3,5]在bID列中.这是我的联结表(JT):aIDbID111225231335我有这个查询:session.query(JT.aID).filter(JT.bID.in_(ids)).all()此查询返回aID值1,2和3因为它们都有行3或5在bID柱子。我希望查询返回的是2因为那是唯一的aID具有ids的所有值的值在其bID中列出专栏。不知道如何更好地解释问题,但我怎样才能得到结果? 最佳答案 基于@GordonLinoff的回答和两个表A和B其中A有一个关系-to-m

python - SQLAlchemy 提交对通过 __dict__ 修改的对象的更改

我正在开发一款多人游戏。当我使用list中的对象时,它应该使用对象的属性值更新用户生物的统计数据。这是我的代码:try:obj=self._get_obj_by_id(self.query['ObjectID']).first()#Getuser'scurrentcreaturecur_creature=self.user.get_current_creature()#Applyingobjectattributestouserattributesforattributeinobj.attributes:cur_creature.__dict__[str(attribute.Name)