发布时间:2026/7/22 3:43:36
基于 FastAPI+Vue3 的人事档案管理系统 校验登录想让用户数量 账号和密码 再去user表里面查出 和 用户输入的对比 如果有信息不对提示什么错误 要是没有信息不对提示登陆成功day03_book_router.post(/login,description用户登录,summary用户登录) async def post_book(user_data:UserRegister): dataawait User.get_or_none(usernameuser_data.username) if not data: return {code: 400, message: 用户不存在} if data.password ! user_data.password: return {code: 400, message: 密码错误} return { code: 200, message: 登录成功, data: { username: data.username, password: data.password } }查询全部部门通过GET方法day03_book_router.get(/list,description获取部门列表,summary获取部门列表) async def get_book_list(): data await Department.all().prefetch_related(employees) data_list[] for i in data: data_list.append({ id: i.id, name: i.name, description: i.location, created_at: i.phone, updated_at: i.updated_at, }) return { code: 200, message: 获取成功, data:data_list, total: len(data_list), }for 里面是想要返回的字段 部门ID、名称、位置、联系电话、更新时间for i in data: data_list.append({ id: i.id, name: i.name, description: i.location, created_at: i.phone, updated_at: i.updated_at, })新增部门POST接受到前端传过来的值Department.create(**department_data.dict())这一块是转成为字典day03_book_router.post(/create,description创建部门,summary创建部门) async def post_department(department_data:DepartmentRegister): data await Department.create(**department_data.dict()) return {code: 200, message: 创建成功, data: data}编辑部门 PUT根据前端传过来的ID进行查询部门exclude_unsetTrue 更新前端传过来的字段update_from_dict 更新数据并保存day03_book_router.put(/update,description更新部门,summary更新部门) async def get_department(id:int, department_data:DepartmentUpdate): data await Department.filter(idid).first() li department_data.dict(exclude_unsetTrue) if not data: return {code: 400, message: 部门不存在} await data.update_from_dict(li) await data.save() return {code: 200, message: 更新成功, data: data}删除部门 DELETE加载员工关联判断部门下是否存在员工有员工提示下面有员工不能删除这个部门无员工执行删除命令day03_book_router.delete(/delete,description删除部门,summary删除部门) async def delete_department(id:int): articles await Department.get_or_none(idid).prefetch_related(employees) if not articles: return {code: 400, message: 部门不存在} if len(articles.employees)0: return {code: 400, message: 部门下有员工请先删除员工} await articles.delete() return {code: 200, message: 删除成功}员工分页列表GET支持分页page/size、姓名模糊查询、部门ID筛选、状态筛选用Q拼接多条件查询预加载所属部门并格式化返回员工全部基础信息字段day03_book_router.get(/all,description获取员工列表,summary获取员工列表) async def get_department_list( page:int1, size:int10, name:str | NoneQuery(None,description姓名模糊搜索), department:int | NoneQuery(None,description部门ID), status:str | NoneQuery(None,description员工状态) ): filter_conditionQ() if name: filter_condition Q(name__containsname) if department: filter_condition Q(department_iddepartment) if status: filter_condition Q(statusstatus) offset (page - 1) * size query await Employee.filter(filter_condition).prefetch_related(department).offset(offset).limit(size) # data await query.offset(offset).limit(size) data_list[] for i in query: i_info{ id: i.id, name: i.name, emp_no: i.emp_no, gender: i.gender, age: i.age, phone: i.phone, email: i.email, hore_date: i.hore_date, salary: i.salary, status: i.status, department:None } if i.department: i_info[department]{ name: i.department.name } data_list.append(i_info) return { code: 200, message: 获取成功, data:data_list }增加员工POSTday03_book_router.post(/creatall,description创建员工,summary创建员工) async def post_employee(employee_data:EmployeeRegister): dic employee_data.dict() dic[department_id] dic.pop(department) data await Employee.create(**dic) return {code: 200, message: 创建成功, data: data}employee_data.dict()把Pydantic对象转换成普通python字典里面存放前端提交所有字段。前端传参示例{name:张三,emp_no:001,department:1,...}dic.pop(department)pop(department取出字典中department 的值就是前端传的部门ID 数字)·同时从字典里删除department 这个 keydic[department_id] .·给字典新增键department_id值为上面拿到的部门ID修改 PUT根据 id 查询部门exclude_unsetTrue只更新前端传入字段day03_book_router.put(/updateall,description更新员工,summary更新员工) async def put_employee(id:int, employee_data:EmployeeUpdate): data await Employee.filter(idid).first() if not data: return {code: 400, message: 员工不存在} li employee_data.dict(exclude_unsetTrue) await data.update_from_dict(li) await data.save() return {code: 200, message: 更新成功, data: data}删除DELETE删除员工时加载相关档案 同步删除员工档案day03_book_router.delete(/deleteall,description删除员工,summary删除员工) async def delete_employee(id:int): data await Employee.filter(idid).first().prefetch_related(profile) if not data: return {code: 400, message: 员工不存在} await data.delete() return {code: 200, message: 删除成功}

相关新闻

2026/7/22 3:43:36

VSCode 基于 C/C++ 官方扩展包和 MinGW-w64 配置 C/C++ 开发环境

1. 环境准备在开始配置 VSCode 的 C/C 开发环境之前,需要先安装以下两个核心组件:VSCode C/C 官方扩展包:在 VSCode 扩展商店中搜索 "C/C" 并安装由 Microsoft 发布的官方扩展包。MinGW-w64 编译器:这是一个 Windows 平…

2026/7/22 3:43:36

ZFX山海证券:从公开信息出发,观察用户体验路径与风险提示

对多数外汇相关用户来说,判断平台并不需要复杂术语,关键在于信息能否被快速理解、关键提示是否容易找到、服务体验是否稳定一致。以ZFX山海证券为例,这里聚焦这些更贴近实际使用的亮点与细节。外汇相关平台的价值,体现在长期一致性…

2026/7/22 3:38:36

Windows网络编程:connect函数详解与实战应用

1. Windows网络编程基础与connect函数定位在Windows网络编程领域,connect函数是建立客户端连接的核心API。作为Winsock2库的关键组成部分,它负责初始化面向连接的套接字通信链路。与UNIX系统不同,Windows环境下connect函数的实现需要考虑Wins…

2026/7/22 6:33:44

嵌入式系统内存控制器功耗优化:EMIFA电源管理与时钟门控实战

1. 项目概述:为什么我们需要关注内存控制器的功耗?在嵌入式系统,尤其是那些对功耗极其敏感的移动设备、物联网终端或者便携式仪器中,每一毫瓦的功耗都至关重要。作为连接处理器核心与外部存储器的“交通枢纽”,内存控制…

2026/7/22 6:33:44

设计EDA高级工程师(高配·准骨干)14维度标准化面试打分卡|内部版

岗位定位:高阶高级工程师(准小组骨干/准储备组长),高于普通高级、低于组长/专家。核心特质:独立模块全权负责、能拆解任务、能带新人、能预判风险、能沉淀标准化方案、能跨部门推进落地、具备准管理能力。 适用人群:可培养为小组负责人、核心模块负责人、重点攻坚骨干的…

2026/7/22 6:33:44

深入解析TI EDMA3TC寄存器:配置、监控与错误处理实战指南

1. 项目概述与核心价值在嵌入式系统开发,尤其是涉及高速数据流处理的领域,比如音视频编解码、雷达信号处理或者高速数据采集,CPU如果被频繁的数据搬运任务所拖累,整个系统的实时性和效率就会大打折扣。这时候,DMA&…

2026/7/22 6:33:44

C++编译优化实战:5个关键参数提升程序性能300%

1. 项目概述:为什么编译优化是C性能的“隐形加速器”?刚入行那会儿,我总觉得C性能优化就是算法和数据结构的事儿,整天琢磨怎么把O(n)改成O(n log n)。直到有一次,我负责维护一个计算密集型的图像处理模块,算…

2026/7/22 6:33:44

AI基础设施与数据智能代理技术趋势解析

1. 论坛背景与行业趋势解读2025年第八届金猿大数据产业发展论坛即将在上海拉开帷幕,这场聚焦AI基础设施与数据智能代理技术的行业盛会,恰逢大数据产业发展的关键转折点。作为从业十年的数据领域观察者,我注意到本次论坛主题"AI Infra&am…

2026/7/22 6:28:43

医疗AI大模型:从技术选型到临床落地的实践指南

1. 医疗AI的现状与挑战医疗行业正面临前所未有的数据爆炸和诊断压力。根据统计,三甲医院每位门诊医生平均每天需要处理60-100份病历,而一份完整的病历往往包含数千字的文本数据和数十项检查指标。这种高强度工作环境下,医生诊断准确率和效率的…

2026/7/20 6:33:00

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/21 20:02:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…