网站公司谁家好网站首页模版

张小明 2026/1/2 20:21:18
网站公司谁家好,网站首页模版,网页设计课程主要内容,一站式网站建设服务商1、FastAPI实现主从表数据接口和SqlAlchemy的数据处理WxPython跨平台开发框架全部采用Python语言进行开发#xff0c;包括后端的内容#xff0c;采用 基于SqlAlchemyPydanticFastApi 的后端框架#xff0c;FastAPI启动后#xff0c;进入Swagger页面如下所示#xff0c;列出…1、FastAPI实现主从表数据接口和SqlAlchemy的数据处理WxPython跨平台开发框架全部采用Python语言进行开发包括后端的内容采用 基于SqlAlchemyPydanticFastApi 的后端框架FastAPI启动后进入Swagger页面如下所示列出每个业务表的相关接口。以上就是常规化的接口包括单个获取、ID存在、条件查询、分页查询、数量查询、增加、删除、更新等标准化接口这些基础类接口一般封装在API的控制器基类中。该后端接口采用统一的接口协议标准协议如下所示。复制代码{success: false,result: T ,targetUrl: string,UnAuthorizedRequest: false,errorInfo: {code: 0,message: string,details: string}}复制代码常规化的接口是结合泛型的方式这样定义可以很好的抽象不同的业务类接口到基类控制器中如下是FastApi 后端的基类控制器定义。image有了上面基类定义好的常规化接口子类只需要继承基类控制器即可获得强大的功能接口了。一般API控制器的子类只需要继承基类就可以了额外增加的接口按常规化的设计函数即可可以参考基类的做法来写各种GET、PUT、DELETE、POST的处理函数。image我们来看看对于产品报价单和明细记录的处理这两个代表不同的业务表我们可以分开管理通过约束他们的记录关系实现主从表弹性化的管理。如对于主表我们在基类接口外定义多两个函数主要就是删除主表的时候同时移除明细记录的关联操作。复制代码from fastapi import APIRouter, Depends, HTTPException, Query, Request, Path, Body..................# 创建路由用于处理自定义接口router APIRouter()router.get(byorderno/{orderno},response_modelAjaxResponse[QuotationDto | None],summary根据报价单编号获取对象信息,dependencies[DependsJwtAuth],)async def find_by_orderno(orderno: Annotated[str | None, Path(description订单编号)],request: Request,db: AsyncSession Depends(get_db),):# ip await get_request_ip(request)item await quotation_crud.get_by_column(db, handno, orderno)item QuotationDto.model_validate(item) if item else Nonereturn AjaxResponse(item)router.delete(quotation-related/{id},response_modelAjaxResponse[bool | None],summary删除报价单及明细信息,dependencies[DependsJwtAuth],)async def delete_quotation_related(id: Annotated[str | None, Path(description报价单ID)],request: Request,db: AsyncSession Depends(get_db),):# ip await get_request_ip(request)#获取记录信息item await quotation_crud.get(db, id)if not item:return AjaxResponse(False)# 删除相关的明细记录res await quotationdetail_crud.delete_by_column(db, orderno, item.handno)if res:# 再删除报价单await quotation_crud.delete_byid(db, id)return AjaxResponse(res)# 使用基类控制器可以继承常规CRUD的接口并自动生成路由依赖注入数据库连接等功能 ——构建方式2controller BaseController[Quotation, str, QuotationPageDto, QuotationDto](quotation_crud,pagedto_classQuotationPageDto,dto_classQuotationDto,routerrouter,)controller.init_router() # 初始化常规CRUD等接口的路由复制代码而报价单明细业务控制器主要需要根据报价单号订单号获取明细的接口复制代码from fastapi import APIRouter, Depends, HTTPException, Query, Request, Path, Bodyfrom typing import Type, TypeVar, Generic, List, Dict, Any, Optional, Annotatedfrom datetime import datetimefrom sqlalchemy.ext.asyncio import AsyncSessionfrom schemas.base import AjaxResponse, ErrorInfo, ListResult, PagedResultfrom api.base_controller import BaseControllerfrom db.session_async import get_dbfrom common.jwt import DependsJwtAuthfrom models.quotationdetail import QuotationDetailfrom schemas.quotationdetail import QuotationDetailDto, QuotationDetailPageDtofrom crud.quotationdetail import quotationdetail as quotationdetail_crudfrom crud.operationlog import operationlog as operationlog_crudfrom utils.request_parse import get_request_ip# 创建路由用于处理自定义接口router APIRouter()router.get(/by-orderno,response_modelAjaxResponse[List[QuotationDetailDto] | None],summary根据订单编号获取记录,dependencies[DependsJwtAuth],)async def get_by_orderno(orderno: Annotated[str | None, Query(description订单编号)],request: Request,db: AsyncSession Depends(get_db),):# ip await get_request_ip(request)items await quotationdetail_crud.get_by_orderno(db, orderno)# print(len(items))items [QuotationDetailDto.model_validate(item) for item in items]return AjaxResponse(items)router.delete(/by-orderno/{orderno},response_modelAjaxResponse[bool | None],summary根据订单编号删除所有明细记录,dependencies[DependsJwtAuth],)async def delete_by_orderno(orderno: Annotated[str | None, Path(description订单编号)],request: Request,db: AsyncSession Depends(get_db),):res await quotationdetail_crud.delete_by_attributes(db, QuotationDetail.orderno orderno)return AjaxResponse(res)# 使用基类控制器可以继承常规CRUD的接口并自动生成路由依赖注入数据库连接等功能controller BaseController[QuotationDetail, str, QuotationDetailPageDto, QuotationDetailDto](quotationdetail_crud,pagedto_classQuotationDetailPageDto,dto_classQuotationDetailDto,routerrouter,)controller.init_router() # 初始化常规CRUD等接口的路由复制代码由于基类控制器接口的标准化我们根据框架后端的接口进行前端API调用类的封装处理从而实现业务基类调用接口的统一封装简化代码。这样增删改查等处理的接口都可以抽象到BaseApi里面了。如对于权限模块我们涉及到的用户管理、机构管理、角色管理、菜单管理、功能管理、操作日志、登录日志等业务类那么这些类继承BaseApi就会具有相关的接口了如下所示继承关系。2、基于SqlAlchemy实现的业务模型FastAPI负责提供数据的API接口底层的数据处理通过SqlAlchemy MongoDB 实现多种数据库的数据管理如对于MySQL、Postgresql、SQLite、Oracle、MongoDB等进行接入和数据交换处理。对于常规的业务表我们采用SqlAlchemy实现数据库的ORM管理的SqlAlchemy也是Python领域中非常强大的ORM管理模块之一, 它让你用 Python 对象来操作数据库而不是手写 SQL 语句。一般我们先定义好模型的基类提供简单的封装image然后在业务类里面继承它即可image报价单的明细表也是类似的image这些模型类和对应接口的DTO类只需要在代码生成工具中进行一键生成就可以了不用编写。在代码生成工具 Database2Sharp 打开数据库列表后右键菜单可以选择生成对应的PythonFastApi后端项目如下界面所示。选中相关的表后一键可以生成各层的类文件其中包括最为繁琐的Model映射类信息。如下是生成的相关类的界面效果。2、WxPthon实现基于Python桌面端主从表的数据处理我们知道一般对于单表来说业务和界面会相对比较简单如下面的界面效果在Windows下客户信息的列表管理和数据编辑界面如下所示。而对于主从表一般除了主业务表外会关联一个到多个的明细表对于报价单来说就只有一个明细表如下所示是具体的界面列表展示。image对于列表的主从表关联关系没有太多好说的就是增加了一个明细表的处理展示对于主从表编辑界面来说就需要复杂处理一些在表格需要直接编辑录入并保存明细的操作处理如下是主从表的编辑界面的实现效果。image其主要就是在第一次创建的时候对表格数据类进行设置image表格的数据直接录入一般不是仅仅的通过文本框的录入一般录入有选择表的记录下拉类表、复选框、图像、数值、颜色等等特殊的录入的。如自定义数据列表选择界面我通过定义一个产品的数据列表展示供选择单击产品编码处弹出一个选择框进行选择。image为了实现对表格数据单元格的单击监控我们绑定了对应的事件。AsyncBind(wx.grid.EVT_GRID_CELL_LEFT_CLICK, self.on_cell_left_click, self.sub_grid)然后对事件进行实现即可。image下拉列表则是通过绑定固定列表或者字典类型的方式实现字典下拉列表选择image初始化字典列表很容易如下代码所示。image其他案例可以参考测试效果支持多种数据输入处理测试界面效果如下所示。image以上就是对于WxPython应用结合前后端的处理实现了主从表展示和录入的界面处理--产品报价单和明细记录的处理。专注于代码生成工具、.Net/Python 框架架构及软件开发以及各种Vue.js的前端技术应用。著有Winform开发框架/混合式开发框架、微信开发框架、Bootstrap开发框架、ABP开发框架、SqlSugar开发框架、Python开发框架等框架产品。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

那些做刷客的网站seo人才

一、题目概述给定一个含有 n 个 正整数 的数组 nums 和一个正整数 target, 请找出该数组中 满足其和 ≥ target 的长度最小的连续子数组,并返回其长度。 如果不存在符合条件的子数组,则返回 0。二、问题分析1, 连续子数组 求最小…

张小明 2025/12/22 10:25:10 网站建设

网站备案账号是什么wordpress模板排行榜

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码获取及仿真…

张小明 2025/12/22 10:25:09 网站建设

长页在线制作网站上海做原创网站

迈向6G移动通信的深度学习与联邦学习 1. 网络多智能体系统 在无线通信领域,除了将机器学习(ML)应用于无线网络,还出现了关于人工智能计算和无线网络的新问题:对于使用ML的智能体,理想的无线网络应该是怎样的?更确切地说,如何为机器智能的智能体(如多机器人系统或多智…

张小明 2025/12/22 10:25:11 网站建设

怎样才能做好网站优化博客网站快速排名

GJB9001C-2017质量管理体系要求完整解析:从入门到精通的终极指南 【免费下载链接】GJB9001C-2017质量管理体系要求下载 GJB9001C-2017质量管理体系要求下载 项目地址: https://gitcode.com/Open-source-documentation-tutorial/520cb 想要快速掌握GJB9001C-2…

张小明 2025/12/22 10:25:15 网站建设

经营虚拟网站策划书小说网站风格

喷砂除锈设备标准工艺流程:五步实现完美基材 喷砂除锈设备工艺远非简单的“用砂子打表面”,而是一套严谨、高效的系统工程。规范的工艺流程是确保处理质量、控制成本与保障安全的核心。 喷砂除锈设备标准流程可精炼为以下5个关键步骤。 第一步&#xff1…

张小明 2025/12/22 10:25:16 网站建设

西安网站建设阳建wordpress文章怎么加分享

第一章:农业产量差异显著性检验概述在现代农业数据分析中,评估不同耕作条件、品种或管理策略对作物产量的影响至关重要。农业产量差异显著性检验是一种统计方法,用于判断两组或多组产量数据之间的差异是否具有统计学意义,而非由随…

张小明 2025/12/22 10:25:16 网站建设