当前位置: 首页 > news >正文

网站怎么关键字优化优化设计的答案

网站怎么关键字优化,优化设计的答案,上海注册公司买新能源车,中铁集团网站建设SQLAlchemy 2.x 异步查询中常用的 结果处理方法速查表,包含方法说明、使用场景、返回类型及典型用途。 SQLAlchemy 查询结果处理方法速查表(适用于 AsyncSession) 方法 说明 返回类型 示例 SQL 示例输出 scalars().all() 获取单列所有…

SQLAlchemy 2.x 异步查询中常用的 结果处理方法速查表,包含方法说明、使用场景、返回类型及典型用途。

SQLAlchemy 查询结果处理方法速查表(适用于 AsyncSession)

方法

说明

返回类型

示例 SQL

示例输出

scalars().all()

获取单列所有值

List[Any]

select(User.id)

[1, 2, 3, 4]

scalars().first()

获取单列的第一行

Any

select(User.email)

"alice@example.com"

scalar()

获取第一行的第一列(聚合)

Any

select(func.count(User.id))

27

mappings().all()

多列,每行为 dict 映射

List[dict]

select(User.id, User.email)

[{'id': 1, 'email': 'a@xx.com'}, {'id': 2, 'email': 'b@xx.com'}]

mappings().first()

返回第一行 dict 映射

dict

select(User.id, User.name)

{'id': 1, 'name': 'Alice'}

first()

返回第一行的 Row

`Row

None`

select(User.id, User.name)

fetchall()

返回所有行 Row 对象列表

List[Row]

select(User.id, User.name)

[(1, 'Alice'), (2, 'Bob')]

fetchone()

返回一行 Row

Row

select(User.id, User.name)

(1, 'Alice')

all()

返回所有 Row(非字典)

List[Row]

select(User.id, User.name)

[(1, 'Alice'), (2, 'Bob')]

one()

获取唯一一行,若多行/无行报错

Row

select(User).where(User.id==1)

User(id=1, name='Alice')

one_or_none()

获取一行或 None

`Row

None`

select(User).where(User.id==9999)

使用建议(按类型):

  • 获取单列(如用户 ID) → 用 scalars().all()
  • 统计总数/最大值 → 用 scalar()
  • 获取结构化多列数据(用于 JSON 返回) → 用 mappings().all()
  • 查找某条记录详情 → 用 mappings().first()one_or_none()
  • 返回原始 SQL 风格 Row → 用 fetchall() / all()(不推荐)

详细解释与建议:

  • scalars()
    • 专门用于查询 单列,如 select(User.id)
    • 会自动去除 Row 封装,只返回具体值
  • mappings()
    • 用于查询 多列,将每一行封装为 dict(字段名:值)
    • 最常用在结构化响应返回中(如 JSON)
  • first()one()
    • first():最多一行,超过无所谓,返回第一行
    • one():必须返回一行,返回多行或无行都抛异常
  • fetchall() / fetchone()
    • 老式用法,返回 Row 对象(类似元组)
    • 不推荐在现代异步代码中使用,建议用 scalars() / mappings() 替代

推荐使用方式总结:

查询类型

推荐方式

单列、多行

scalars().all()

单列、单值

scalar()scalars().first()

多列、多行

mappings().all()

多列、单行

mappings().first()one_or_none()

真实使用示例(异步 FastAPI):

async def test_get_single_column():async with session_factory() as session:query = select(User.id)result = await session.execute(query)user_ids = result.scalars().all()print("用户 ID 列表:", user_ids)  # 用户 ID 列表: [1, 3]# 2. 统计总数/最大值 → 用 scalar()
async def test_aggregate_functions():async with session_factory() as session:# 统计用户总数total_count = await session.execute(select(func.count(User.id)))total = total_count.scalar()print("用户总数:", total)  # 用户总数: 2# 查找最大的角色 IDmax_role_id = await session.execute(select(func.max(User.role_id)))max_role_id_value = max_role_id.scalar()print("最大的角色 ID:", max_role_id_value)  # 最大的角色 ID: 2# 3. 获取结构化多列数据(用于 JSON 返回) → 用 mappings().all()
async def test_get_structured_data():async with session_factory() as session:query = select(User.id, User.user_name, User.email)result = await session.execute(query)users = result.mappings().all()print("结构化多列数据:", users)# 结构化多列数据: [{'id': 1, 'user_name': 'test', 'email': '123@qq.com'},# {'id': 3, 'user_name': 'test1', 'email': '456@qq.com'}]# 4. 查找某条记录详情 → 用 mappings().first() 或 one_or_none()
async def test_find_single_record():async with session_factory() as session:# 使用 mappings().first()query = select(User.id, User.user_name, User.email).where(User.id == 1)result = await session.execute(query)user = result.mappings().first()print("使用 mappings().first() 查找的记录:", user)# 使用 mappings().first() 查找的记录: {'id': 1, 'user_name': 'test', 'email': '123@qq.com'}# 使用 one_or_none()user_obj = await session.execute(select(User).where(User.id == 1))user_result = user_obj.scalars().one_or_none()print("使用 one_or_none() 查找的记录:", user_result)# 使用 one_or_none() 查找的记录: <login_related.model.user.User object at 0x000001477DC206D0># 5. 返回原始 SQL 风格 Row → 用 fetchall() / all()(不推荐)
async def test_get_raw_rows():async with session_factory() as session:query = select(User.id, User.user_name, User.email)result = await session.execute(query)rows = result.all()print("原始 SQL 风格 Row:", rows)# 原始 SQL 风格 Row: [(1, 'test', '123@qq.com'), (3, 'test1', '456@qq.com')]

 

http://www.cadmedia.cn/news/2985.html

相关文章:

  • 桂林北站到象鼻山景区怎么坐车谷歌排名网站优化
  • 产地证是在哪个网站上做网络营销型网站
  • 网站建设书籍宁德市公共资源交易中心
  • 网页设计与制作教程杨选辉课后答案搜索引擎优化什么意思
  • 什么网站可以做外贸培训心得体会2000字
  • 自己怎么做网站优化一个新的app如何推广
  • 北京天津网站设计制作多少钱网站公司
  • 网站赏析排名函数rank怎么用
  • 乌鲁木齐住房和建设厅网站免费网站推广优化
  • 长春做网站哪家好站长之家端口扫描
  • 湖北网站推广服务营销软文网站
  • 郑州公司网站平台建设35个成功的市场营销策划案例
  • 宁波网站设计建站服务公司百度收录量查询
  • golang建设网站公众号如何推广运营
  • 靠谱网站建设公司报价seo小白入门
  • 淘客推广网站怎么做的互联网营销的方式有哪些
  • 玉林建设公司网站百度招聘2022年最新招聘
  • 黄页app下载seo网站有优化培训班吗
  • 东莞网站竞价推广百度网络营销
  • 网络系统安全原则苏州排名搜索优化
  • 安徽省途顺建设工程有限公司网站新网站如何让百度收录
  • 高密市住房和城乡建设局网站汕头百度网站推广
  • 网站技术解决方案是什么搜索关键词的网站
  • 南京专业网站制作公司有哪些百度app怎么找人工客服
  • app设计理念优化营商环境发言稿
  • 群晖 建站 Wordpress淘词神器
  • 网站建设锚点链接如何做好产品网络推广
  • 精品网站建设费用 干净磐石网络哪个模板建站好
  • 宁波seo链接优化北京官方seo搜索引擎优化推荐
  • 珠海做网站公司哪家好视频剪辑培训班