sqlalchemy orm复杂查询备忘录

PostgreSQL数据库注释与表结构查询全攻略:从COMMENT命令到数据字典生成 数据库元数据管理是软件工程中数据建模与系统可维护性的基础环节。其核心原理是通过系统目录表(如pg_catalog)存储表、列、约束等对象的定义与描述信息,实现数据结构与业务语义的持久化关联。这项技术的核心价值在于将隐式的业务逻辑显式化、文档化,从而大幅提升团队协作效率、降低系统维护成本,并支撑自动化工具链。在应用场景上,它不仅是ORM框架(如SQLAlchemy)生成模型的基础,更是数据字典生成、API文档自动化(如Swagger)以及数据库设计评审的关键输入。本文聚焦于PostgreSQL的COMMENT 阅读详情

收录一些自己用过的sqlalchemy复杂查询以备忘

env: python flask sqlalchemy

case 1:搜索今年及去年的数据记录

编号格式为:PR-19-00001
编号中间的19为年份,需要根据年份来找出所有今年以及去年(18)的记录并排序
key point:or_、contains()

from sqlalchemy import or_
import datetime, time

this_year_code = str(datetime.datetime.now().year)[2:4]
last_year_code = str(int(this_year_code) - 1)
projects = Projects.query.filter(or_(Projects.project_num.contains('PR-{}'.format(last_year_code)),
                                         Projects.project_num.contains('PR-{}'.format(this_year_code)))).order_by(
        Projects.project_num.desc()).all()
result查询对象转化为dict

db.session.query出的结果是result查询对象,如果是.first()就直接是result对象,如果是.all(),则是result的list
(1)db.session.query().filter().first()

requirements = db.session.query(RequirementList.id, DeviceCategory.type, DeviceCategory.name, DeviceCategory.specs,
                                    DeviceCategory.supplier, DeviceCategory.price, DeviceCategory.usage_scenarios,
                                    RequirementList.numbers, RequirementList.device_category_id,
                                    DeviceCategory.brand).join(DeviceCategory,
                                                               DeviceCategory.id == RequirementList.device_category_id).filter(
                                    RequirementList.order_id == order_id).all()
# 将result结果转化为dict
requirement_list = [dict(zip(r.keys(), r)) for r in requirements]   

(2)db.session.query().filter().all()

device = db.session.query(PurchaseList.cicode, PurchaseList.sn, DeviceCategory.name,
                                  DeviceCategory.specs,
                                  DeviceCategory.price, PurchaseList.kvm_ip, DeviceCategory.supplier,
                                  DeviceCategory.brand, PurchaseList.status).select_from(PurchaseList). \
            join(DeviceCategory, DeviceCategory.id == PurchaseList.device_category_id). \
            filter(PurchaseList.cicode == every_cicode).first()
# 将result list结果转化为dict的list
device_dict = dict(zip(device.keys(), device))
查找字段为空或者非空
# 查找字段为空的
db.session.query(employee).filter(employ.brand_id==None))

# 查找字段非空的
db.session.query(employee).filter(employ.brand_id.isnot(None))

# 查找字段非空2
from sqlalchemy import not_
db.session.query(user).filter(not_(employ.user==None))

或和并同时的查询条件
from sqlalchemy import or_, and_

db.session.query(devices).filter(or_(
	devices.name == None,
	and_(devices.status == 'delivered', devices.op == 'david')
))

多条件过滤查询
param = []
param.append(User.name == 'xiaoming')
param.append(User.city == 'shenzhen')
param.append([User.num.isnot(None), User.car == 'Focus')

db.session.query(User).filter(*param).all()
基于FastAPI+Vue3构建个人投资管理中枢:从数据聚合到可视化看板 在数据处理与系统架构领域,数据聚合与可视化是提升信息决策效率的核心技术。其原理在于通过统一的数据模型与异步任务调度,将分散、异构的数据源进行集中处理、关联分析与实时计算,最终通过前端图表库进行直观呈现。这项技术的价值在于能够将原始数据转化为可操作的洞察,显著提升个人或团队在复杂信息环境下的管理效能。典型的应用场景包括个人资产管理、业务监控仪表盘以及物联网数据中台等。本文聚焦于个人投资管理场景,深入探讨如何利用FastAPI构建高效后端API,结合Celery实现股价等动态数据的异步更新与缓存,并通过Vue 阅读详情

相关推荐

WorkBuddy上下文窗口管理:从原理到实战,释放AI助手真正生产力

在人工智能与自然语言处理领域,大语言模型(LLM)的上下文窗口是其核心能力之一,它本质上是模型的短期工作记忆区,通过注意力机制处理Token序列来决定信息保留与关联权重。理解并有效管理上下文窗口,是提升AI助手在代码生成、数据分析、文档处理等工程实践中效能的关键。其技术价值在于,通过精炼和结构化输入信息,可以显著降低沟通成本,确保AI在处理多轮对话、复杂任务时保持连贯性与准确性。在实际应用场景中,无论是进行需求分析、技术架构设计,还是结合数据库连接器进行动态查询,良好的上下文管理都能使AI助手从简单的问答工

weixin_33862993的博客 346

Mysql之case when用法详解

case when条件表达式函数

tangsiqi130的博客 665

Flask新手注册系统实战:从零实现邮箱验证与密码安全存储

Web注册系统是理解HTTP请求生命周期、表单处理与数据持久化的经典入门场景。其核心原理在于服务端接收用户输入、执行多层校验(格式、业务规则、唯一性)、安全哈希密码并持久化至数据库。技术价值体现在可控的安全实践——如手动SQL参数化防注入、bcrypt显式盐值管理、SQLite事务异常捕获,避免ORM抽象带来的认知盲区。典型应用场景包括MVP产品冷启动、教学沙盒环境搭建及全栈基础能力验证。本文以Flask+SQLite+原生SQL为技术栈,聚焦邮箱验证、密码二次确认与错误反馈等关键环节,还原真实新手从‘写不

weixin_30788619的博客 306

sqlalchemy批量查询

sqlalchemy批量查询优化。

weixin_56821734的博客 1078

ASP网上报修系统源码解析:从经典架构到安全实践

Web开发的核心在于理解HTTP请求、数据库操作与会话管理等基础概念。这些原理构成了所有Web应用的骨架,无论是现代框架还是遗留系统都基于此构建。通过剖析经典的ASP+Access技术栈,可以直观地看到表单提交、数据验证与CRUD操作如何串联起完整的业务闭环。这种直白的实现方式,虽显古老,却为理解底层数据流转与状态管理提供了绝佳范本。对于希望夯实基础或从事遗留系统维护的开发者而言,研究此类系统能深刻揭示SQL注入、XSS等安全漏洞的成因与防御之道。本文以一套功能完整的网上报修系统为例,拆解其架构设计,并探讨

weixin_33804582的博客 330

基于Flask+Vue的健康数据记录与分析系统实战

随着体检报告、运动手环、血糖仪等健康监测设备的普及,个人健康数据呈爆发式增长。但数据散落在不同平台、格式不统一、难以导出,导致趋势分析无法落地。健康数据管理的核心在于统一采集、清洗与关联分析。本文从数据管理的基本概念出发,阐述如何利用Python生态的数据处理能力与前端可视化技术,构建一套完整的个人健康信息记录分析系统。后端采用轻量级Flask框架,前端使用Vue实现交互,配合pandas完成批量清洗、指标计算与趋势挖掘,并通过ECharts将体重、血压、血糖等体征变化直观呈现。该系统覆盖数据录入、批量导入

weixin_33860528的博客 318

sqlalchemy case when分组查询统计

1.需求 根据过滤条件将设备按升级状态分组,统计总数和各个状态的数量。 2.原始数据 3.原生sql语句 select count(*) as "total", sum(case when upgrade_status='failed' then 1 else 0 end) as "failed_count", sum(case when upgrade_status='unstarted' then 1 else 0 end) as "unstarted_count", sum(case wh

生有涯,知无涯 3731

Python+MySQL宿舍管理系统开发全攻略:从需求到答辩

在Web开发学习与毕业设计选型中,Python与MySQL的经典组合始终是高效构建管理系统的首选。理解数据库设计原理、后端框架选型及权限控制逻辑,是掌握系统开发的关键。Flask作为轻量级框架,搭配pymysql直写SQL,能清晰展现从业务建模到功能实现的完整链路。本文以宿舍管理系统为实战案例,系统梳理需求分析、角色权限划分、七张核心表的外键设计、基于事务的宿舍分配机制、报修状态流转及统计报表SQL,并覆盖环境配置、常见部署踩坑与答辩追问准备。无论你是课程设计还是工程实践,这套从零到一的方法论都能帮助你快速

weixin_35879493的博客 328

sqlalchemy更新数据与原生sql使用case when 更新

最近有个任务,将表中的存储的首拼改为全拼,比如infos表中有name字段为中文,在name_acronym字段中存储着name的首拼即拼音的首字母,现在需要将其改为全拼。 表中大概有一百多万数据,一开始用的sqlalchemy,但是速度太慢,并且没跑完可能脚本就被kill了,所以后来改为了原生sql,下面记录一下我的完成过程以及踩过的坑。 生成全拼使用的是slug方法,在pypinyin库中的core.py中定义了slug函数,下面是官方的定义: def slug(hans, style=Style.NO

ayangann915的博客 2575

从STM32转战STC32G?逐飞开源库帮你快速上手GPIO、PWM与ADC(避坑指南)

本文详细介绍了从STM32迁移到STC32G32K128的开发实践,重点解析了GPIO、PWM和ADC等基础外设的设计差异,并提供了基于逐飞开源库的高效应用方案。通过对比两种平台的开发工具和操作方式,帮助开发者快速上手STC32G,避免常见陷阱,提升开发效率。

weixin_30316097的博客 529

从零到一:RV1126与IMX415的硬件交响曲——深入解析Linux IPC摄像头的硬件调试艺术

本文深入解析了RV1126与IMX415组合的Linux IPC摄像头硬件调试技术,涵盖硬件接口检查、设备树配置、驱动加载验证及ISP调优等关键步骤。通过详细的操作指南和常见问题解决方案,帮助开发者快速掌握摄像头调试技巧,提升开发效率。

weixin_29161785的博客 978

sqlalchemy orm case用法

See sqlalchemy.sql.expression.case function and more examples on the documentation page. But it would look like this (verbatim from the documentation linked to): case([(orderline.c.qty > 100, ite...

hulpmi的博客 3567

开关电源的纹波和噪声电压-抑制方法

开关电源(包括AC/DC转换器、DC/DC转换器、AC/DC模块和DC/DC模块)与线性电源相比较,最突出的优点是转换效率高,一般可达80%~85%,高的可达90%~97%;其次,开关电源采用高频变压器替代了笨重的工频变压器,不仅重量减轻,体积也减小了,因此应用范围越来越广。 但开关电源的缺点是由于其开关管工作于高频开关状态,输出的纹波和噪声电压较大,一般为输出电压的1%左右(低的为输出电压的0.5%左右),最好产品的纹波和噪声电压也有几十mV;而线性电源的调整管工作于线性状态,无纹波电压,输出的噪声电压也

ltqdxl的博客 1万+

Python全栈健康管理系统开发与Flask+Vue实践

Web应用开发中,前后端分离架构已成为主流技术方案,它通过解耦展示层与业务逻辑,显著提升系统的可维护性和扩展性。以Python技术栈为例,Flask框架凭借其轻量级特性,特别适合构建需要高度定制化的RESTful API服务,而Vue.js则以其渐进式特性成为前端开发的优选方案。在健康管理领域,这种技术组合能够有效解决数据分散、分析困难等痛点,实现健康指标的集中化管理和可视化呈现。通过SQLAlchemy ORM进行数据库操作,结合Pandas进行数据分析,开发者可以快速构建具备JWT安全认证的健康数据管理

weixin_33816821的博客 799

AMD SDP 优快云 系列文章设计

摘要 本文档规划了7篇AMD SDP协议解析系列文章的技术博客设计方案。基于《Scalable Data Port (SDP) Specification》1.5.0版本(122页),面向SoC/NoC领域的RTL设计与验证工程师,构建从基础概念到验证实现的知识体系。 系列文章严格遵循协议规范边界,采用五类证据标签区分内容来源(规范原文、勘误、验证推导等),禁止补充未定义的实现细节。包含端口控制、事务传输、一致性协议等核心内容,最终落实到验证平台设计与覆盖率模型。 每篇文章采用统一模板:明确规范依据、问题导

元直的博客 160

四足狗机器人硬件开发技术栈详解

本文系统介绍了四足狗机器人的硬件开发技术,重点分析了五大核心模块:机械结构(骨架设计)、动力系统(关节驱动)、感知系统(环境监测)、控制系统(决策中枢)和电源系统(能源管理)。文章详细阐述了各模块的选型标准、技术要点和协同设计原则,提供了从需求定位到组装调试的完整开发流程,并针对常见问题给出解决方案。随着材料轻量化、模块标准化和AI集成化的发展趋势,四足机器人硬件将向更灵活、更智能的方向演进,为工业巡检、应急救援等场景提供更强大的移动平台支持。

start_up_go的博客 284

OpenClaw智能体混合记忆系统实战:向量与关系数据库融合架构

在AI智能体开发中,长期记忆能力是提升实用性的关键。其核心原理是为智能体构建一个可持久化、可查询的结构化记忆系统,而非简单的对话历史记录。这一技术通过结合向量数据库的语义搜索能力和关系数据库的精准元数据管理,实现了高效、精准的记忆存储与召回,极大增强了智能体在复杂任务中的上下文理解与状态跟踪能力。典型的应用场景包括自动化客服、项目管理助手和个人知识库等需要持续交互与信息积累的领域。本文以OpenClaw智能体框架为例,详细阐述了如何通过**混合架构**设计,并利用**向量数据库**与关系数据库协同工作,构建

weixin_30568591的博客 407

Google Earth Engine——使用STARFM 图像融合算法将Landsat 和 MODIS 融合得出2000-2023 NDVI长时序图(空间分辨率为 30 米、时间分辨率为 16 天)

非本地入侵物种是全球生态系统面临的主要威胁之一。野葛(Pueraria montana)是一种生长迅速的藤本植物,原产于亚洲,现已入侵美国一些地区,因此该物种的管理成为一个重要问题。利用 Landsat 和 MODIS 平台收集的数据,计算了 2000 年至 2015 年肯塔基州三个侵扰地点的归一化差异植被指数(NDVI)估算值。使用 STARFM 图像融合算法将大地遥感卫星和 MODIS 得出的 NDVI 结合成空间分辨率为 30 米、时间分辨率为 16 天的时间序列。

此星光明博客 2509

技术写作的本质:如何让读者更自信而不是更自卑

技术写作不是知识的单向灌输,而是跨越认知落差的协作共建。其核心原理在于降低理解门槛、显化隐性知识、解构专业术语、还原真实过程,从而提升开发者的学习效能与工程信心。这种‘自信型’写作强调读者契约、认知阶梯、过程显影和行动召唤,广泛应用于DevOps实践、云原生工具链教学、后端框架入门等场景。尤其在Redis缓存策略、K8s服务发现、Git Hooks自动化等高频技术传播中,能否消除‘空气墙’‘黑话墙’‘断崖墙’‘审判墙’,直接决定内容是否真正落地为生产力。

463

【AgentScope 2.0】01-不搭 demo,直接解剖一个生产级 Agent 平台:loser-agent 全链路地图

本文介绍生产级Agent平台loser-agent的完整请求旅程,从用户发消息到返回结果共七站:入口鉴权、灰度路由、Agent装配、模型路由、工具执行、持久化与流式响应。课程以真实源码为线索,深入剖析每一步实现逻辑,涵盖灰度发布、权限控制、HITL审批、多模态处理、状态持久化等核心能力。强调框架仅负责Agent运行时语义,平台自建管理请求生命周期中所有非框架部分,适合Java后端开发者系统掌握Agent工程化落地。

loser.with.m的博客 725

【React】1、React入门与概览(JSX语法)

React入门 文章目录React入门一、React全家桶1. React是什么?2. 谁开发的?3. 为什么要学?4. React的特点5. 学习React之前要掌握的JavaScript基础知识二、React 概览组件JSXVirtual DOM关于虚拟DOM:Data Flow三、React基本使用相关js库四、React JSXJSX 语法规则五、模块与组件、模块化与组件化的理解5.1 模块5.2 组件5.4 模块化5.5 组件化 一、React全家桶 React基础 React-Router(R

Coding and studying 1379

阿里CoPaw进阶指南:从代码补全到智能编程工作流的深度实践

在软件工程领域,人工智能辅助编程正从概念走向大规模工程实践。其核心原理在于利用大语言模型对代码语义的理解和生成能力,通过自然语言交互,将开发者的意图转化为可执行代码或解决方案。这一技术的核心价值在于显著提升开发效率、代码质量与知识传承的标准化。典型的应用场景包括代码生成与补全、自动化代码审查、技术方案咨询以及调试辅助等。本文聚焦于阿里云智能编码助手CoPaw的深度应用,通过构建私有知识库(RAG)和工程化提示词设计,探讨如何将其从基础的代码提示工具,升级为理解复杂业务逻辑、融入团队开发流程的智能协作者,实现

weixin_30527423的博客 393

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

GPT-5.5与Claude如何按任务类型精准分工

大语言模型不是越新越强,而是需匹配真实任务特性。理解‘主动推进’与‘长程稳定’两大核心能力差异,是提升AI工程效能的基础:前者指模型在目标模糊时自主拆解路径、动态校准的能力,适用于策划、创意、实时响应等开放型任务;后者指在超长文本、多跳推理、高精度语义锚定中保持逻辑一致性的抗衰减能力,适用于法律审查、代码调试、技术文档处理等确定性要求高的场景。二者并非性能高低之分,而是角色定位之别——一个像探路先锋,一个像守城工程师。实际应用中,应依据任务的模糊性、容错性、响应时效与上下文长度等维度,建立可复用的模型选型决

weixin_30902251的博客 317

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

sqlalchemy.sql包常用方法

Sqlalchemy Sqlalchemy.sql 通过这个包可以帮助我们用python代码实现sql from sqlalchemy import func from sqlalchemy.sql import case, select, label, union_all, expression, column, or_, and_ db.session.query( # sql相当于...

beichen0518的博客 600

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

sqlalchemy flask case when查询

from sqlalchemy import case case_sqr = case([(Master.STATUS == 0, Master.SCS)], else_=Master.ZCS).label("SQR") case_end = case([(Master.STATUS == 0, Master.BLQX)],else_=case([(Master.PZYC == '', Mast...

ennismar的博客 3106

sqlalchemy批量添加数据-数据源是json(小算法)

需求: 想要写1个增加case的接口 问题: sqlalchemy添加case的方式,只能是1条数据1条数据的插入,像这样: 1   ro2 = Role(name='user') 2 db.session.add_all([ro1]) 3 db.session.commit() 我希望的效果是这样的: 我传入一个字典{'name':'lis...

aff60756的博客 737
上一篇: python flask简单文件上传下载实现
下一篇: 解决Redis Cluster模式下键空间通知Keyspace notification失效的问题(python实现)
arnolan
博客等级 码龄19年 45粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值