草庐IT

latest-sqlalchemy

全部标签

python - 将参数添加到字符串 SQL 查询时出现 SQLAlchemy 错误

我正在尝试使用SQLALchemy1.1.2编写一个字符串SQL查询。我遵循了文档中关于usingtextualSQL的解释但是当我运行以下代码时遇到语法错误:fromsqlalchemy.sqlimporttext#Createadatabaseconnectioncalled"connection"...q=text('USE:name')connection.execute(q,name='DATABASE_NAME')这是错误信息:"YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLser

mysql - 使用 SQLAlchemy 创建表后,如何向其中添加其他列?

到目前为止,这是我的文件:fromsqlalchemyimportcreate_engine,ForeignKeyfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportrelationship,backreffromsqlalchemyimportColumn,Integer,StringfromsqlalchemyimportTable,Textengine=create_engine('mysql://root:ababab@localhost/alctest',echo=False)

mysql - 更改 SQLAlchemy 的 Session.delete() 行为

关于SQLAlchemy的Session的delete()方法是否有任何配置可能性?我想让相应的对象在数据库中标有已删除的标志,而不是从中删除。有没有办法做到这一点?目的是在不失去SQLAlchemy的级联特性优势的情况下,构建一个没有破坏性更新的数据库。 最佳答案 创建您自己的session类继承自Session并用您自己的逻辑覆盖delete()方法(对于那些需要逻辑删除),回退到其他对象的默认实现。如果你使用sessionmaker或者类似的工厂,你也可以在class_参数中提供你的类。希望这能回答您的问题。但是,话虽如此,对

python - 为什么带有 charset=utf8 的 SQLAlchemy create_engine 返回 python 类型 <str> 而不是类型 <unicode>?

使用Python2.7和SQLAlchemy0.7,我使用以下命令连接到MySQL数据库:engine=create_engine('mysql://username:password@host/dbname?charset=utf8',echo=False)根据SQLAlchemy文档,设置charset=utf8自动意味着use_unicode=1,因此所有字符串都应返回为unicode。http://docs.sqlalchemy.org/en/rel_0_7/dialects/mysql.html具体举例#setclientencodingtoutf8;allstringsco

MySQL 和 SQLAlchemy : getting N recent comments for multiple items

我正在尝试编写查询以获取多个项目的N个最新评论。目前,我正在循环遍历每个项目的查询:foriinitemIds:Comment.query.filter_by(itemId=i).order_by(Comment.id.desc()).limit(3)但这真的很慢。我想要一个获取所有评论的查询,但不知道如何实现。我尝试过使用union但没有成功。看来MySQL、order_by和union存在问题。我正在尝试达到以下效果:a=Comment.query.filter_by(itemId=1).order_by(Comment.id.desc()).limit(3)b=Comment.q

python - 如何配置 sqlalchemy 以正确存储表情符号?

使用sqlalchemy0.9.7,我试图将表情符号存储到启用了utf8mb4的MySQL5.5中。但是,出于某种原因,sqlalchemy正在杀死我的表情符号字符,我不知道为什么。在尝试通过sqlalchemy保存数据之前,我可以在对象中看到表情符号字符。保存后,抛出错误,表情符号呈现为????。错误如下。请注意,它被输出type(post.message)和post.message的调试消息包围。--------------------------------------------------------------------------------DEBUGin__init_

python - SQLAlchemy 删除级联完整性错误

我正在尝试从我的数据库中删除一个订单,同时删除与其相关的所有ordereditems。withcontextlib.closing(DBSession())assession:try:returnedOrder=session.query(ORDER).filter_by(ORDERSID=orderID).first()session.delete(returnedOrder)session.commit()exceptexc.SQLAlchemyError,error:session.rollback()raise_database_error(error)else:return'

python - 比较 SQLAlchemy 中的 DateTime 和 Interval

我有这门课:classMonitor(db.Model):'''BaseMonitorclass.'''__tablename__='monitor'id=db.Column(db.Integer(),primary_key=True)last_checked=db.Column(db.DateTime(timezone=False))poll_interval=db.Column(db.Interval(),default=datetime.timedelta(seconds=300))我有这个查询,我试图只返回自(现在-间隔)以来未检查过的对象:monitors=db.sessio

python - 我怎样才能使用 SQLAlchemy 做 "mysql explain"

我有一个像这样的sql:DBSession().query(Model).filter(***)我想用SQLAlchemy来解释这个sql。 最佳答案 您想compileyourSQLAlchemyqueryintoastring;使用正确的方言并为绑定(bind)参数使用文字值query=DBSession().query(Model).filter(***)#youshouldhaveanenginereferenceusedtocreatetheDBSessionobjectsql=query.statement.compil

python - SQLAlchemy 不区分大小写基于 IN 的搜索查询?

如何以安全的方式在SQLAclhemyORM中执行不区分大小写的IN搜索?我自己和我项目中的其他人都在寻找这个,但我们似乎找不到符合我们需要的任何东西。在原始SQL中我可以这样做:SELECT*FROMTABLENAMEWHEREUPPER(FIELDNAME)IN(UPPER('foo'),UPPER('bar'));..如果FOO和BAR在未知情况下不是用户输入。事实上,我担心以下几点:安全性:我不想以SQL注入(inject)攻击的形式访问BobbyTables(http://xkcd.com/327/)。我找不到告诉我如何在SQLAlchemy中转义字符串的文档,否则我会觉得加