Peewee如何选择并别名化字面量列值?
Peewee实现指定SELECT语句的官方推荐方式
针对你要实现的SQL语句,Peewee官方有两种更贴合API设计的推荐方式,比直接使用Alias处理常量值更常用:
1. 使用Value类 + alias方法
Value是Peewee专门用来表示SQL常量值的类,搭配alias方法可以直接指定别名,写法直观且符合官方惯用风格:
from peewee import Value # 构建查询 query = User.select(User.name, Value('hello').alias('foo')) # 打印生成的SQL print(query)
生成的SQL与你需要的完全一致:
SELECT "t1"."name", 'hello' AS "foo" FROM "users" AS "t1"
2. 使用SQL表达式直接编写片段
如果需要更灵活地嵌入原生SQL片段,可以直接使用SQL类,这种方式适合处理复杂常量或自定义SQL逻辑:
from peewee import SQL # 构建查询 query = User.select(User.name, SQL("'hello' AS foo")) # 打印生成的SQL print(query)
同样会生成目标SQL语句。
关于你提到的Alias:它本身是可行的,但Alias的设计初衷更多是为表或子查询设置别名,而非处理常量值,因此官方更推荐上面两种方式。
内容的提问来源于stack exchange,提问作者Matthew Moisen
相关产品推荐
相关产品推荐

