我有一个SQLAlchemy查询对象,并希望得到编译的SQL语句的文本,其所有参数绑定(例如没有%s或其他variables等待被语句编译器或MySQLdb方言引擎等绑定)。 在查询中调用str()显示如下所示的内容: SELECT id WHERE date_added <= %s AND date_added >= %s ORDER BY count DESC 我试过查找query._params,但它是一个空字典。 我使用sqlalchemy.ext.compiler.compiles修饰器的这个例子编写了我自己的编译器,但是即使这个语句仍然有我想要数据的%s 。 我不能完全弄清楚什么时候我的参数混入来创build查询; 当检查查询对象时,它们总是一个空的字典(尽pipe查询执行正常,当您打开回显logging时,引擎会将其打印出来)。 我开始收到SQLAlchemy不希望我知道底层查询的消息,因为它打破了expression式API接口的所有不同DB-API的一般性质。 我不介意在查询之前执行查询是什么; 我只是想知道!
是否有一个简单的方法来迭代列名称和值对? 我的sqlalchemy版本是0.5.6 这里是我尝试使用字典(行)的示例代码,但它会抛出exception,TypeError:'用户'对象不可迭代 import sqlalchemy from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker print "sqlalchemy version:",sqlalchemy.__version__ engine = create_engine('sqlite:///:memory:', echo=False) metadata = MetaData() users_table = Table('users', metadata, Column('id', Integer, primary_key=True), Column('name', String), ) metadata.create_all(engine) class User(declarative_base()): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) def __init__(self, name): self.name = […]
你如何在SQLAlchemy中执行原始SQL? 我有一个python web应用程序运行在瓶和通过SQLAlchemy接口到数据库。 我需要一种方法来运行原始的SQL。 查询涉及多个表连接以及embedded视图。 我试过了: connection = db.session.connection() connection.execute( <sql here> ) 但我不断收到网关错误。
Django有一些很好的从DB到JSON格式返回的ORM模型的自动序列化。 如何将SQLAlchemy查询结果序列化为JSON格式? 我试过jsonpickle.encode但它编码查询对象本身。 我试过json.dumps(items)但它返回 TypeError: <Product('3', 'some name', 'some desc')> is not JSON serializable 将SQLAlchemy ORM对象序列化为JSON / XML真的很难吗? 没有任何默认序列化程序? 现在序列化ORM查询结果是很常见的任务。 我需要的只是返回SQLAlchemy查询结果的JSON或XML数据表示。 JSON格式的SQLAlchemy对象查询结果需要在javascript datagird中使用(JQGrid http://www.trirand.com/blog/ )
我真的希望能够为我的应用程序打印出有效的SQL,包括值,而不是绑定参数,但是在SQLAlchemy中如何做到这一点并不明显(按照devise,我相当确定)。 有没有人以一般的方式解决这个问题?
我试图在Flask / Python中对一个SQLAlchemy结果集进行Jsonify。 Flask邮件列表build议使用以下方法http://librelist.com/browser//flask/2011/2/16/jsonify-sqlalchemy-pagination-collection-result/#04a0754b63387f87e59dda564bde426e : return jsonify(json_list = qryresult) 不过,我收到以下错误: TypeError: <flaskext.sqlalchemy.BaseQuery object at 0x102c2df90> is not JSON serializable 我在这里俯瞰什么? 我发现这个问题: 如何将SqlAlchemy结果序列化为JSON? 这看起来非常相似,但是我不知道Flask是否有一些神奇的function让邮件列表文章更容易。 编辑:澄清,这是我的模型看起来像 class Rating(db.Model): __tablename__ = 'rating' id = db.Column(db.Integer, primary_key=True) fullurl = db.Column(db.String()) url = db.Column(db.String()) comments = db.Column(db.Text) overall = db.Column(db.Integer) shipping = db.Column(db.Integer) cost = db.Column(db.Integer) honesty = db.Column(db.Integer) communication […]