【python – 如何将列表绑定到sqlalchemy中自定义查询中的参数?】教程文章相关的互联网学习教程文章

python-在SQLAlchemy中按子查询排序【代码】

我正在尝试选择最新的线程(Thread),这些线程按对它们的最新答复的时间降序排列(答复是Post模型,这是标准的论坛查询).在SQL中,我会这样写:SELECT * FROM thread AS t ORDER BY (SELECT MAX(posted_at) FROM post WHERE thread_id = t.id) DESC我该如何在SQLAlchemy中进行此类操作?我尝试过这样的事情:scalar = db.select[func.max(Post.posted_at)].where(Post.thread_id == Thread.id).as_scalar() threads = Thread.query.orde...

Python,SQLAlchemy,如何仅通过一条提交指令以一种有效的方式插入查询【代码】

我正在使用SQLAlchemy,并且我的插入功能正常工作.但是,我想要并且我需要它高效,因此,由于我要插入“ for循环”内部,因此我想在程序执行结束时仅提交一次. 我不确定这种想法是否适用于SQLAlchemy,因此请以正确,有效的方式为我提供建议. 我的代码将从for循环中调用insert_query函数.我不返回在函数调用内创建的查询对象.def insert_query(publicId, secret, keyhandle, secretobj):#creates the query object sql = secretobj.insert...

python-SQLAlchemy关联表(关联对象模式)引发IntegrityError【代码】

我正在使用SQLAlchemy版本0.8.2(尝试使用python 2.7.5和3.3.2) 我不得不在代码中使用关联对象模式(用于多对多关系),但是每当我添加关联时,它都会引发IntegrityError异常.这是因为不是执行“ INSERT INTO关联(left_id,right_id,extra_data)[…]”,而是执行了“ INSERT INTO关联(right_id,extra_data)[…]”,这将引发IntegrityError异常,因为它缺少主键. 在尝试将问题缩小一会儿并尽可能简化代码后,我找到了罪魁祸首,但我不明白为什么...

python-如何在SQLAlchemy Core中将列名作为参数传递?【代码】

我有一个sqlalchemy核心批量更新查询,我需要以编程方式传递要更新的列的名称. 该函数如下所示,其中包含每个变量的注释:def update_columns(table_name, pids, column_to_update):'''1. table_name: a string denoting the name of the table to be updated2. pid: a list of primary ids3. column_to_update: a string representing the name of the column that will be flagged. Sometimes the name can be is_processed or is_...

python-使用sqlalchemy和postgres的SSL syscall错误错误文件描述符【代码】

所以我有一个守护进程,通过sqlalchemy与Postgres对话.守护程序执行以下操作:while True:oEngine = setup_new_engine()with oEngine.connect() as conn:Logger.debug("connection established")DBSession = sessionmaker(bind=conn)()Logger.debug('DBSession created. id={0}'.format(id(DBSession)))#do a bunch of stuff with DBSessionDBSession.commit()Logger.debug('DBSession committed. id={0}'.format(id(DBSession)))在...

python-SQLAlchemy-如何获取最新记录的1分钟内和同一分钟内的所有记录?【代码】

我的表有一个datetime列,该列记录更新行的时间;称为col_datetime.我需要在col_datetime中获取具有最新datetime的行,以及该记录在一分钟内且具有相同分钟的所有其他记录.例:pk | first | col_datetime 1 Dave 2014-03-23 8:23:57 2 Dan 2014-03-23 8:22:59 3 Teresa 2014-03-23 8:23:01 4 Marge 2013-03-23 8:23:08就我而言,我需要查询返回第1行和第3行(即使第2行在记录#1的1分钟之内,也不是同一...

python-如何按列表在sqlalchemy中排序数据【代码】

我有来自外部postgresql数据库的ID列表.A = [1,2,3,4,5,6,7,98,0]我想使用SQLAlchemy来查询数据库,但是我要按A列表对postgresql中的数据进行排序. 我阅读了很多文档,但是找不到任何建议. 因此,最终我将拥有:results = session.query(user).limit(20).offset(10).order_by(A)干杯 更新: 我找到了解决方案,虽然效果不如预期,但效果很好.无论如何,如果您知道更好的解决方案,请告诉我!ids = ','.join([str(i) for i in A]) results ...

python-SQLAlchemy是否清除原始SQL?【代码】

简单的说.如果我做了类似的事情Conn.execute(RAW_SQL) sqlalchemy会对此进行清理以防止sql注入还是按字面意思执行它?谢谢解决方法:不,如果您传入带有插值的原始SQL,SQL Alchemy将不会对其进行清理.它将被执行. 至少始终使用查询参数. 字符串对象直接传递给基础数据库连接实现;它确实支持查询参数,但是您必须使用特定于处理数据库通信的库的参数样式. 您可以使用sqlalchemy.sql.expression.text()生成具有实现不可知查询参数语法的...

python-SQLAlchemy,scoped_session-原始SQL INSERT不写入数据库【代码】

我有一个Pyramid / SQLAlchemy,MySQL python应用程序.当我执行原始SQL INSERT查询时,没有任何内容写入数据库.但是,在使用ORM时,我可以写入数据库.我阅读了文档,阅读了有关ZopeTransactionExtension的信息,阅读了很多SO问题,但都无济于事.到目前为止没有奏效的是: > transaction.commit()-没有任何内容写入数据库.我确实意识到ZopeTransactionExtension需要使用该语句,但是这里并没有解决问题.> dbsession().commit-因为我正在使用...

python-如何在SQLAlchemy中查询关联表?【代码】

我只想提取存储在SQLAlchemy中关联表中的密钥对.一种方法是创建一个关联类,并进行类似session.query(Assoc).all()的操作. 是否可以类似的方式查询关联表?解决方法:可以像声明模型一样查询表.该查询返回键控元组的列表,而不是类的实例.session.query(my_table).all()

python-Flask API上的sqlalchemy mysql连接未关闭【代码】

我有用烧瓶写的api.它使用sqlalchemy来处理mysql数据库.我不使用flask-sqlalchemy,因为我不喜欢该模块强制您进入某种模式来声明模型的方式. 我有一个数据库连接没有关闭的问题.表示连接的对象超出范围,因此我假设它正在被垃圾收集.我还明确地在会话上调用close().尽管有这些事实,但在api调用返回响应后很长时间,连接仍保持打开状态. sqlsession.py:这是我用于会话的包装器.class SqlSession:def __init__(self, conn=Constants.Sq...

python-Flask-Sqlalchemy,多对多关系中的辅助表的主键【代码】

我正在尝试使用Flask-Sqlalchemy为Postgresql数据库建立简单的多对多关系:from app import db from sqlalchemy.dialects.postgresql import UUIDauthors_books = db.Table('authors_books',db.Column('id', UUID(as_uuid=True), primary_key=True),db.Column('author_id', UUID(as_uuid=True), db.ForeignKey('authors.id')),db.Column('book_id', UUID(as_uuid=True), db.ForeignKey('books.id')), )class Author(db.Model):__ta...

python-SQLAlchemy ORM关系中的当前日期【代码】

我正在尝试根据当前日期配置两个对象之间的关系.假设我有一个Person对象和与一系列Event对象的关系.如果Event对象上保留着DateTime(开始),则我想与今天的所有事件建立关系. 到目前为止,我有:class Person:id = Column(Integer, primary_key=True)todays_events = relationship('Event', primaryjoin='and_(Person.id == Event.person_id, cast(Event.start, Date) == "2016-04-23"')这可行,但是我找不到用“ 2016-04-23”替换日期...

python-在SQLAlchemy中调用delete()后行仍然存在【代码】

我想拥有一条Flask路由,该路由删除SQLAlchemy模型VisitLog的所有实例.我调用VisitLog.query.delete(),然后重定向回页面,但旧条目仍然存在.没有错误.他们为什么不删除?@app.route('/log') def log():final_list = VisitLog.query.all()return render_template('log.html', loging=final_list)@app.route('/logclear') def logclear():VisitLog.query.delete()return redirect("log.html", code=302)<a href="{{ url_for('logclear'...

python-将SQLAlchemy ORM与sql核心表达式中的对象连接在一起?【代码】

我必须使用SQLalchemy Core表达式来获取对象,因为ORM无法执行“更新并返回”. (ORM中的更新没有返回)from sqlalchemy import update class User(ORMBase): ... # pure sql expression, the object returned is not ORM object. # the object is a RowProxy. object = update(User) .values({'name': 'Wayne'}) .where(User.id == subquery.as_scalar()) .returning() .fetchone()什么时候db_session.add(object)...