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

创新实训第二周工作总结

学习总结学习理解了Fastapi的基本业务逻辑以及与Springboot的关联性对分层架构Layered Architecture的核心增进了理解。我发现在Fastapi与Springboot中都存在着从Springboot: Controller-Service-Repository(Mapper)Fastapi: Controller-Service-DAO这种类似的架构同时理解辨析了VO与DO的区别DO为数据库的镜像投影在DAO中可以调用DO中的变量来操作数据库vo中的数据则是通过controller-service调用封装传到前端或者获取前端的数据而二者的联系应该是在service层中相互转化vo的数据通过service层的方法传入dao层再赋值给do来操作数据库。如下图业务流程万变不离其宗前辈们的智慧还是太强大了OVO熟悉了FastAPI的业务逻辑后编写与修改就变得简单了许多啊。遇到的问题蛇形命名snake_case与驼峰型命名camelCase注意注意一定要在service构建字典中和vo转到前端里面匹配可恶的AI害我改了又改一开始全是NULLFASTAPI真的是一个考验规范链接的框架。。。。。SpringBoot里有类似于的显式映射而FastAPI里面并没有需要手动处理感谢每一个默默付出的大模型开始以为是DO结果并不是也是成功了随之而来的新问题是虽然获取到数据却有部分没有显示出来只在管理员端对不起管理员端的同学T.T解决方法最后的最后找到了解决问题的方法在 PageModel.model_dump 里对rows的每一项若是dict或带__table__的ORM统一用 CamelCaseUtil.transform_result 转成驼峰dict再处理一层嵌套如dept、items。方法如图具体逻辑不再讲述这个的方法的作用为不管传进来是什么字典、对象、元组我都把它变成驼峰命名的字典这样就相当于统一了命名的规则Springboot的显式映射真是好东西后端架构介绍简单介绍一下我的后端架构前端基本使用ai生成还是有些丑陋T.T首先是典型的分层架构后端采用 Controller → Service → DAO 三层架构Controller--àService--àDAO同时在Dict和ORM对象使用方面的一个基本对比调这两个的驼峰形与下划线蛇形兼容很费劲维度ORM对象Dict字典适用阶段DAO 层、写入操作Service→Controller 返回、动态拼装优势类型安全、IDE 提示、可 flush 获取主键灵活、可合并多表字段、易序列化典型用法select(Model)、db.add(obj)CamelCaseUtil.transform_result()、{c.name: getattr(...)}本项目策略写入 简单查询用 ORM返回前端 动态关联用 Dict这里还会出现一些小问题。由于混合的使用和开发时候的粗心大意导致有些命名格式及其不规范在这里也是改了又改功能演示下面是我的功能演示比起上周的只有一个前端改善很多健康档案首先健康档案处可以实现基本信息填写个人画像目前我已经基本实现了患者端的挂号功能用图片来做基本演示选择医生预约详情挂号界面如上图我的预约我的预约初可以查看全部预约此时医生可以看到处方开具患者端查看以及查看处方详情项目逻辑简单讲解一下我目前所做的项目逻辑DODO基本上是对数据库的一个映射类似Springboot里的实体类想查什么写什么下图预约的DO不过多赘述voVO我的理解里VO要拿到前端传回的内容虽然在Springboot里基本上用map拿回来了不咋写VO所以VO的设计很多基本上前端的一个表格对应着后面的一个VO基础的响应模型VO视图就不展示了这里以医生列表为例下面图是 前端显示一一对应即可业务流程以及分层体现医生列表展示 (Query Phase)此阶段主要解决数据获取与展示的问题。数据查询前端发起挂号页面请求后端在 DAO 层通过 med_clinic_doctor 表查询所有状态正常的医生。关联映射为了满足前端展示需求需通过 JOIN 关联 sys_user 表以获取医生账号状态并关联 sys_dept 表以获取科室名称。数据封装Service 层将查询到的 DO 列表转换为前端所需的 VO 格式通过分页工具PageModel包装后返回。此过程需注意字段命名规范Snake Case 转 Camel Case确保前端能正确解析数据。涉及转换方法我已经在前文提到号源查询与状态生成 (Selection Phase)此阶段涉及内存计算与数据库查询的结合逻辑相对复杂。参数接收前端传入 doctorId 和 queryDate。数据库比对后端查询 med_clinic_appointment 表获取该医生当日所有已被预约状态为 0 或 1的记录。状态生成在内存中预设 08:00-17:00 的所有时段共 18 个 Slot。通过比对数据库中的已占时段将剩余时段标记为 available: true已占时段标记为 available: false。这种“全量生成状态覆盖”的逻辑有效避免了频繁的数据库轮询提升了接口响应速度。自动建档与冲突检测 (Validation Phase)在事务提交前必须进行严格的业务规则校验。自动建档Auto-Registration在 Service 层校验用户状态。若发现该用户在 med_patient 表中无档案记录则自动执行创建逻辑。以当前登录用户信息生成 patient_name 并插入新记录。这一机制实现了业务逻辑的无感化极大优化了首诊患者的使用体验。时段冲突检测Conflict Detection在写入前再次校验 med_clinic_appointment 表。若发现目标 slot_start 时段已存在状态为“已预约”或“已完成”的记录则立即抛出业务异常“该时段已被预约”。这是防止号源超卖的关键锁机制。如图所示约满不可再约后面是预约写入与事务管理 (Persistence Phase)这个算是前人的智慧框架真的很完善和规范可惜遇到了不太规范的开发者此阶段严格遵循 ORM 规范与事务一致性。对象构建利用 SQLAlchemy ORM 构建 MedClinicAppointment 对象并通过 db.add() 加入会话。主键获取调用 db.flush() 方法。这一步至关重要它将 SQL 发送到数据库执行但未提交从而获取数据库自增的 appointment_id供后续业务如日志记录或关联操作使用。事务提交待所有业务逻辑校验无误后由 Service 层统一执行 db.commit()正式提交事务确保数据的原子性。结语能看到这里的说明还是有人愿意看我的博客总结一下吧以上是工作成果和产出这周的产出没有想象中的那么多本周工作基本是这些了解Fastapi的框架和我想象到的Sringboot还是有很大的区别的显式映射我真得狠狠夸完善了一下挂号功能AI是很好用但是细节的处理还是要我们来检查或许是我给他说的不对总之是耗费了许多世界。如果是Springboot的话或许直接疯狂产出了。目前在与医生端同学沟通写住院的事宜等我查一眼项目书没有就偷偷不做而且网页版的话搞这个好像是有些多余下周计划下周准备研究一下1.在线支付这些内容内网穿透啥的研究研究加上购买系统2.大模型的同学应该搞差不多了把他的大模型部署下来看看如何完成对话。3.再次完善一下我的交互逻辑下个星期首当其冲要完成命名规范的统一这种隐藏的东西还是很重要的不能再每次出错每次改。。。。这周差不多就是这些了给下周工作的cpy加油吧

相关文章:

创新实训第二周工作总结

学习总结学习理解了Fastapi的基本业务逻辑以及与Springboot的关联性对分层架构(Layered Architecture)的核心增进了理解。我发现在Fastapi与Springboot中都存在着从Springboot: Controller->Service->Repository(Mapper)Fastapi: Controller->S…...

Pixel Script Temple部署教程:ARM服务器(如NVIDIA Grace)上Qwen2.5量化部署

Pixel Script Temple部署教程:ARM服务器(如NVIDIA Grace)上Qwen2.5量化部署 1. 项目概述 Pixel Script Temple是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将AI推理能力与8-Bit复古美学相结合,为创作者提供沉…...

数字波束形成中的导向矢量与FFT方法:原理对比与场景应用

1. 数字波束形成的基本概念 数字波束形成是现代雷达和通信系统中的核心技术之一。简单来说,它就像给天线装上了"智能方向盘",能够根据需要灵活调整信号接收或发射的方向。想象一下,你在一间嘈杂的餐厅里,想要听清某个人…...

突破硬件限制:OpenCore Legacy Patcher实现老旧Mac现代化升级的完整方案

突破硬件限制:OpenCore Legacy Patcher实现老旧Mac现代化升级的完整方案 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 在苹果生态系统中&#x…...

3小时掌握拼多多数据采集:Scrapy框架实战指南

3小时掌握拼多多数据采集:Scrapy框架实战指南 【免费下载链接】scrapy-pinduoduo 拼多多爬虫,抓取拼多多热销商品信息和评论 项目地址: https://gitcode.com/gh_mirrors/sc/scrapy-pinduoduo 对于电商数据分析和市场研究从业者而言,获…...

DecompilerMC:揭秘Minecraft源码反编译的高效方案

DecompilerMC:揭秘Minecraft源码反编译的高效方案 【免费下载链接】DecompilerMC This repository allows you to decompile any minecraft version that was published after 19w36a without any 3rd party mappings, you just need to execute the script or the …...

tchMaterial-parser:国家中小学智慧教育平台电子课本下载的高效解决方案

tchMaterial-parser:国家中小学智慧教育平台电子课本下载的高效解决方案 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本…...

如何在Windows系统上高效安装和管理Android应用:APK Installer完整指南

如何在Windows系统上高效安装和管理Android应用:APK Installer完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 对于需要在Windows电脑上运行Androi…...

C++技术岗面试经验总结

🎬 胖咕噜的稞达鸭:个人主页🔥 个人专栏: 《数据结构》《C初阶高阶》 《Linux系统学习》 《算法日记》⛺️技术的杠杆,撬动整个世界! 1. 右值引用和左值引用的区别 左值是我们平常使用的函数对象,表达式结束后依旧存在…...

深度解析notion-enhancer组件化架构:从UI扩展到底层实现的设计模式

深度解析notion-enhancer组件化架构:从UI扩展到底层实现的设计模式 【免费下载链接】notion-enhancer An enhancer/customiser for the all-in-one productivity workspace Notion 项目地址: https://gitcode.com/gh_mirrors/no/notion-enhancer Notion作为现…...

AliceSoft游戏文件处理终极指南:从入门到精通的完整解决方案

AliceSoft游戏文件处理终极指南:从入门到精通的完整解决方案 【免费下载链接】alice-tools Tools for extracting/editing files from AliceSoft games. 项目地址: https://gitcode.com/gh_mirrors/al/alice-tools AliceSoft游戏文件处理工具Alice-Tools是一…...

DXVK 2.7.1:Linux游戏图形性能的终极Vulkan转换层深度解析

DXVK 2.7.1:Linux游戏图形性能的终极Vulkan转换层深度解析 【免费下载链接】dxvk Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk DXVK 2.7.1作为基于Vulkan的Direct3D 8/9/10/11转…...

一次企业知识库同步系统改造复盘:从全量拉取到增量消息的演进与多级缓存一致性保障

2026 年 4 月 6 日凌晨 3:17,我们收到一条告警:知识库同步服务 CPU 飙升至 98%,同步任务积压超过 12 万条,下游 AI 助手响应延迟突破 8 秒。这不是第一次了——过去三个月,每逢周一早高峰或知识库批量更新后&#xff0…...

如何将Smart AM60电视盒子变身高性能Armbian服务器:完整实战指南

如何将Smart AM60电视盒子变身高性能Armbian服务器:完整实战指南 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l…...

Altium Designer 22 实战:用这个隐藏技巧,为DIP插件焊盘穿上‘防烫服’

Altium Designer 22实战:用丝印层为DIP焊盘打造双重防护 手工焊接DIP插件时,烙铁温度过高或操作不当导致绿油层损坏,进而引发短路问题,是硬件工程师经常遇到的痛点。特别是在生产线上,工人为了效率往往将烙铁温度调至最…...

Python3.10开发环境搭建指南:Miniconda镜像简化部署流程

Python3.10开发环境搭建指南:Miniconda镜像简化部署流程 1. 为什么选择Miniconda-Python3.10 Python作为当今最流行的编程语言之一,版本管理一直是开发者面临的挑战。Miniconda-Python3.10镜像提供了一种轻量级解决方案,它能帮你&#xff1…...

如何完整解决Bilibili API风控限制?开发者高效应对指南

如何完整解决Bilibili API风控限制?开发者高效应对指南 【免费下载链接】bilibili-api 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。原仓库地址:https://github.com/MoyuScript/bilibili-api 项目地址: https://gitcode.com/gh_mir…...

Qwen3-VL-8B分步部署教程:vLLM服务+proxy_server+chat.html独立启动详解

Qwen3-VL-8B分步部署教程:vLLM服务proxy_serverchat.html独立启动详解 1. 项目概述 今天给大家分享一个完整的AI聊天系统部署方案,基于Qwen3-VL-8B大语言模型,包含前端界面、反向代理服务器和vLLM推理后端。这个系统采用模块化设计&#xf…...

STM32F0实战:基于HAL库开发【4.6】

21.2 USB模块STM32F0072VBT6微控制器片内集成有符合USB2.0全速设备技术规范要求的USB模块,通过该模块可以实现与PC主机的USB通信连接,进一步拓展将该系列微控制器的应用范围。21.2.1 USB模块的结构STM32F072VBT6微控制器片内集成的USB模块,可…...

12年不上班,我靠什么支撑到现在

我已经12年没去上过班了,14年从学校辞职出来后,就没再给人打过工。虽然我不上班,但身边人都觉得我很会赚钱,觉得我很幸运,也觉得我很有勇气。 其实,并不是我多勇敢,是因为早在2014年&#xff0c…...

C语言字符串必知:末尾有个隐藏的\0,新手易踩坑

C语言字符串 在C语言程序设计体系当中,字符串属于处理文本信息的核心载体,其设计逻辑跟底层实现深深地展现了C语言贴近硬件兼具高效灵活的语言特性,和一部分高级语言不一样,C语言并没有设置独立的字符串数据类型,而是经…...

告别联网烦恼:uv离线安装科学计算包的3种实战姿势(NumPy/TensorFlow实测)

数据科学家必备:三种高效离线安装Python科学计算包的终极方案 实验室的服务器突然断网了,而你的TensorFlow模型训练正进行到关键时刻——这种场景对数据科学家来说简直是噩梦。别担心,离线安装Python包并非无解难题。本文将带你掌握三种经过实…...

揭秘书匠策AI:论文写作的未来式导航助手 —— 你的毕业论文智囊团

在学术的浩瀚海洋中,每一位即将扬帆远航的毕业生都面临着同样的挑战——如何撰写一篇高质量、有深度的毕业论文?这不仅仅是对知识的综合运用,更是对思维逻辑、创新能力的全面考验。幸运的是,随着人工智能技术的飞速发展&#xff0…...

Cursor Pro功能优化工具:提升AI编程体验的开源解决方案

Cursor Pro功能优化工具:提升AI编程体验的开源解决方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tr…...

编程新手学编程,先学C语言还是C++?学姐告诉你答案

身为一名编程方面的新手,大家都会遭遇的一个疑问是:是要先去学习C语言,还是要先去学习C?有些同学会认为倘若我先着手学习C,之后再回过头来学习C语言,这样是不是会更为简便?毕竟,升级…...

终极暗黑破坏神2存档编辑器:免费开源的d2s文件修改完整指南

终极暗黑破坏神2存档编辑器:免费开源的d2s文件修改完整指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经因为暗黑破坏神2中的角色培养方向错误而感到沮丧?或者因为装备获取过于依赖运气而想…...

突破压缩技术边界:7-Zip ZS多算法融合解决方案全解析

突破压缩技术边界:7-Zip ZS多算法融合解决方案全解析 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 在数据爆炸的时代,文件…...

Windows 10/11 安卓应用安装器:APK Installer 完整使用指南

Windows 10/11 安卓应用安装器:APK Installer 完整使用指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为无法在Windows电脑上运行安卓应用而烦恼吗…...

5分钟解锁百度网盘SVIP下载特权:Mac用户的终极加速指南

5分钟解锁百度网盘SVIP下载特权:Mac用户的终极加速指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾为百度网盘在Mac上的龟速下…...

unrpa架构深度解析:RPA文件格式逆向工程与高性能解包技术实现

unrpa架构深度解析:RPA文件格式逆向工程与高性能解包技术实现 【免费下载链接】unrpa A program to extract files from the RPA archive format. 项目地址: https://gitcode.com/gh_mirrors/un/unrpa 在游戏开发与逆向工程领域,RPA(R…...