- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我曾尝试使用 SQLAlchemy 方法 load_only 和 defer 仅从数据库发送某些列,但我似乎无法让它们工作。
这是我使用的代码:
query = db.session.query(Vendor).options(defer('ownerName', 'boxSize', 'boxes', 'lastPickUp', 'zone', 'code'))
return response( query )
*response是我根据自己应用的具体需要写的一个自定义的jsonify方法。
我期待着回应:
{
"Response": [
{
"address": "10th and SW Alder St",
"city": "Portland, OR",
"id": 1,
"keywords": "Tacos, Mexican",
"latitude": 45.5206464,
"longitude": -122.68157559999997,
"name": "Taco Ted",
"phone": null,
"website": null,
},...
但我得到的是:
{
"Response": [
{
"address": "10th and SW Alder St",
"boxSize": null,
"boxes": 10,
"city": "Portland, OR",
"id": 1,
"keywords": "Tacos, Mexican",
"lastPickUp": "01/12/2014",
"latitude": 45.5206464,
"longitude": -122.68157559999997,
"name": "Taco Ted",
"ownerName": null,
"phone": null,
"website": null,
"zone": 1
},...
这意味着我的延迟被忽略了。我也尝试过使用 load_only 来解决这个问题,但它们似乎都没有区别。我在这里缺少什么?
(如果有什么不同,我正在使用 sqlite 数据库进行开发。)
最佳答案
这不是 deferred()
的正确用法,您在此处的用例是添加 load_only()
的原因。每次调用 deferred()
一次只处理一个属性;它接受许多字符串这一事实与查询中的“路径”有关,这不是您在此处处理的内容。
load_only() 将阻止在初始查询中加载未命名的属性:
load_only('ownerName', 'boxSize', 'boxes', 'lastPickUp', 'zone', 'code')
但是,如果您的 jsonify 方法仍然调用这些属性,例如 somevendor.boxSize
,它将在此时发出 SQL。所以这也取决于您如何提取属性。
关于python - SQLAlchemy load_only 和 defer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21145702/
我正在尝试使用 sqlalchemy 的 load_only 函数从表中选择列的子集。不幸的是,它似乎并不只返回函数调用中指定的列——具体来说,它似乎还获取了主键(在我的例子中,是一个 auto_in
SQLAlchemy:load_only 不适用于别名继承模型。我正在使用这个查询: EngineerAlias = aliased(Engineer) q = (session.query(Engi
急切加载子关系时,如何只加载父模型的几列: 如果我只需要 chapters 模型的 title 列,这会起作用: session.query(Book)\ .options(joinedloa
我曾尝试使用 SQLAlchemy 方法 load_only 和 defer 仅从数据库发送某些列,但我似乎无法让它们工作。 这是我使用的代码: query = db.session.query(Ve
基本上我已经创建了一个数据库,在正常的完整查询中,这是我使用的代码和生成的响应。 db.session.query(User).all() 生成的查询如下: , 这是合乎逻辑的,因为我正在从表中提
查询我的数据库时,我只想加载指定的列。使用 with_entities 创建查询需要引用模型列属性,而使用 load_only 创建查询需要与列名称对应的字符串。我更愿意使用 load_only,因为
我正在使用 Ganglia + RRDTool为 monitoring a web farm .很多图很清楚,但是当我看到load_one metric , 我 don't have Y-axis l
运行下面的示例时,会生成以下无效的 SQL 查询: SELECT anon_1.venue_id AS anon_1_venue_id, St_asbinary(an
我是一名优秀的程序员,十分优秀!