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可以只查某一列吗的主要内容,如果未能解决你的问题,请参考以下文章

我可以用逗号将多行分隔为一列吗? [复制]

sklearn,DecisionTreeRegressor:我可以优先考虑一列数据而不是其他列吗?

sqlalchemy 简单使用

SQLAlchemy-ORM

SQL Server 数据库查找重复记录的几种方法

初学flask_sqlalchemy