Sqlalchemy - 向查询添加列

spi*_*edd 6 python sqlalchemy flask python-3.x flask-sqlalchemy

例如,我正在使用chinook数据库,我想将Name字段转换为slug.Slugify是一个来自awesome-slugify的功能.

在SQL中有这样的东西

Select *, slugify(Name) as name_slug
from Artist
Run Code Online (Sandbox Code Playgroud)

在sqlalchemy我尝试过:

artist = Artist.query.add_columns(name_slug=slugify(Artist.Name)).all()
Run Code Online (Sandbox Code Playgroud)

artist = Artist.query.add_columns(name_slug=[slugify(a.Name) for a in Artist.Name]).all()
Run Code Online (Sandbox Code Playgroud)

我可以通过在终端中执行以下操作来生成名称slug列表:

art = models.Artist.query.all()
name_slug = [slugify(a.Name) for a in art]
print(name_slug)
Run Code Online (Sandbox Code Playgroud)

但我不确定如何将它们联系在一起.

jua*_*gan 7

我没有测试slugify,但这可能是你正在寻找的:

artist = Artist.query.add_columns(slugify(Artist.Name).label("name_slug")).all()
Run Code Online (Sandbox Code Playgroud)