sqlalchemy可以只查某一列吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlalchemy可以只查某一列吗相关的知识,希望对你有一定的参考价值。
参考技术A(百度这个编辑功能太渣了,markdown/markup都不支持,缩进都没了,凑合看吧。)
注意以以下查询返回的不再是DeclarativeMeta对象,而是单纯的tuple对象,也就是说没有列名。
用query的with_entites方法:
User.query.with_entities(User.id,User.dept_id).all()
2.如果有外键关系,可以使用join进行关联,join的参数要用relationship的backref值:
# Model User
class User(db.Model):
id = db.Column(db.Integer, primary_key = True)
username = db.Column(db.String(40), unique = True, nullable = False)
password = db.Column(db.String(32), nullable = False)
email = db.Column(db.String(120), unique = True)
realname = db.Column(db.String(20))
dept_id = db.Column(db.Integer, db.ForeignKey('department.id'))
def __init__(self, username, password, email, realname, dept_id):
self.username = username
self.password = password
self.email = email
self.realname = realname
self.dept_id = dept_id
#Model Department
class Department(db.Model):
id = db.Column(db.Integer, primary_key=True)
department_name = db.Column(db.String, unique=True, nullable=True)
users = db.relationship('User', backref='dept',lazy='dynamic')
def __init__(self,department_name):
self.department_name = department_name
def __repr__(self):
return '<Department %r>' % self.department_name
查询方法:
User.query.with_entities(User.id,User.username,Department.department_name).join(User.dept).all()
等价于:
SELECT "user".id AS user_id, "user".username AS user_username, department.department_name AS department_department_name FROM "user" JOIN department ON department.id = "user".dept_id
参考技术B 通过Flask-SQLAlchemy提供的一个query属性,当你通过model类uery属性,你可以得到一个数据库表的查询结果集。i.User.query.filter_by(username='peter').first(),通过filter_by方法里的条件表达式来对query所得到的结果集进行过滤,得到你想要得到的结果。
example:
Retrieve a user by username通过username属性为’peter‘过滤结果集:
>>> peter = User.query.filter_by(username='peter').first()
>>> peter.id
1
>>> peter.email
u'peter@example.org'
当不存在结果集时返回none:
>>> missing = User.query.filter_by(username='missing').first()
>>> missing is None
True本回答被提问者采纳
我们可以隐藏 VB.NET 的第一个选择列吗?
【中文标题】我们可以隐藏 VB.NET 的第一个选择列吗?【英文标题】:Can we hide VB.NET first selection column? 【发布时间】:2012-01-02 07:28:24 【问题描述】:我希望我正确地陈述了我的问题。请看下面的截屏:'
我希望上面显示的第一列不显示。是否有任何设计/编程方式来实现这一目标?
谢谢!
编辑: 使用此链接http://www.andreavb.com/forum/viewtopic_7951.html,我可以从选择列中删除三角形
【问题讨论】:
你好。您是如何更改窗体的外观的? 【参考方案1】:这是使用我假设的 DataGridView?只需对行标题使用可见属性即可。
dgv.RowHeadersVisible = false;
或者,您可以使用“属性”窗口将其设置为 false。
【讨论】:
谢谢,让我试试。不,这不是解决方案。它将隐藏列Kode
,这是我们的数据之一:)
哦,你说你想隐藏第一列。这更容易。在 DGV 属性中,您可以关闭行标题。给我一秒钟,我会找出哪个...
谢谢!你说得对!它是RowHeaderVisible
。我以为它会完全隐藏标题行,但实际上它只隐藏了我想要的第一行。顺便说一句,你有没有看过我的另一个问题,***.com/questions/8201009/… ??谢谢以上是关于sqlalchemy可以只查某一列吗的主要内容,如果未能解决你的问题,请参考以下文章