Get a list of values of one column from the results of a query

后端 未结 3 680
梦毁少年i
梦毁少年i 2021-01-04 08:52

I have a User model where users can have the same name. I want to get the email addresses of all the users with a given name. However, I have to do resu

3条回答
  •  自闭症患者
    2021-01-04 09:24

    There is a way to return specific columns from a filter_by query using the values method. As follows:

     emails = [r[0] for r in db.session.query(my_table).filter_by(name=name).values('email')]
    

    or:

     emails = [r[0] for r in User.query.filter_by(name=name).values('email')]
    

    values() takes any number of field names as parameters and returns a generator that has tuples with each value from each field name. Using a list comprehension to take the first item of that tuple emails will then be a list of plain string email addresses.

提交回复
热议问题