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

仿cnzz 网站 源码北京建站免费模板

仿cnzz 网站 源码,北京建站免费模板,韩国源代码交易网站,赣州市建设考勤网站使用FastAPI封装树形结构生成函数#xff1a;高效处理层级数据 在Web开发中#xff0c;树形结构是一种常见的数据组织形式#xff0c;常用于菜单、分类、组织结构等场景。本文将介绍如何使用FastAPI封装一个通用的树形结构生成函数#xff0c;支持动态选择字段#xff0c…使用FastAPI封装树形结构生成函数高效处理层级数据 在Web开发中树形结构是一种常见的数据组织形式常用于菜单、分类、组织结构等场景。本文将介绍如何使用FastAPI封装一个通用的树形结构生成函数支持动态选择字段并递归构建树形数据。 需求分析 我们需要实现一个函数能够根据给定的模型和父节点ID递归生成树形结构。同时支持动态选择需要返回的字段以满足不同场景的需求。 实现思路 递归查询从根节点pid0开始逐层查询子节点。动态字段选择通过fields参数指定需要返回的字段。树形结构构建将查询到的节点数据组织成树形结构。 代码实现 以下是基于FastAPI和Tortoise ORM的实现代码 from fastapi import FastAPI from tortoise.contrib.fastapi import register_tortoise from tortoise.models import Model from tortoise import fieldsapp FastAPI()# 示例模型 class Category(Model):id fields.IntField(pkTrue)name fields.CharField(max_length255)pid fields.IntField(default0) # 父节点ID# 树形结构生成函数 async def create_tree(model, pid: int 0, fields: list None):获取树形结构支持动态选择字段:param model: 数据模型:param pid: 父节点ID:param fields: 需要返回的字段列表:return: 树形结构列表# 查询当前层级的节点nodes await model.filter(pidpid).values(*fields)tree []for node in nodes:# 当前节点的数据字典node_data {field: node[field] for field in fields}# 递归查找子节点children await create_tree(model, pidnode[id], fieldsfields)if children:node_data[children] childrentree.append(node_data)return tree# FastAPI路由示例 app.get(/tree) async def get_tree():fields [id, name] # 动态选择字段tree await create_tree(Category, pid0, fieldsfields)return {tree: tree}# 数据库初始化 register_tortoise(app,db_urlsqlite://:memory:,modules{models: [__main__]},generate_schemasTrue, )if __name__ __main__:import uvicornuvicorn.run(app, host0.0.0.0, port8000)代码解析 模型定义 Category是一个简单的分类模型包含id、name和pid字段。pid表示父节点ID根节点的pid为0。 create_tree函数 通过model.filter(pidpid).values(*fields)查询当前层级的节点。使用递归调用create_tree获取子节点并将结果添加到children字段中。返回完整的树形结构。 FastAPI路由 /tree接口调用create_tree函数返回生成的树形结构。 数据库初始化 使用register_tortoise初始化数据库并自动生成表结构。 使用示例 启动FastAPI服务后访问/tree接口将返回如下格式的树形结构 {tree: [{id: 1,name: Root,children: [{id: 2,name: Child 1,children: []},{id: 3,name: Child 2,children: []}]}] }前端代码 const defaultProps {children: children,label: name }; el-treerefstep_treeRef :data树结构 :propsdefaultPropsdefault-expand-all /tree总结 通过封装create_tree函数我们可以轻松生成树形结构并支持动态选择字段。这种方法适用于各种层级数据的场景如菜单、分类、组织结构等。结合FastAPI和Tortoise ORM能够快速构建高效的Web服务。 希望本文对你有所帮助如果有任何问题或建议欢迎在评论区交流讨论。
http://www.hkea.cn/news/14586634/

相关文章:

  • html网站开发相关书籍中国电建成都设计院
  • 杭州画廊网站建设互联网产品设计
  • 淄博周村网站建设定制公司的网站如何进行修改布局
  • 南京制作网站电子政务网站建设ppt
  • 响应式视频网站模板下载wordpress文章添加返回目录
  • 网站设计公司服务郑州市建设集团
  • 济南集团网站建设价格市场营销推广策划方案
  • 赣州网站建设方案平面设计线上兼职
  • 旺道seo网站优化大师佛山网站推广优化公司
  • 高端网站定制平台做网站推广见客户的话术
  • 西安中交建设集团网站营销型网站建设大概多少钱
  • 吉林公司做网站wordpress网易云课堂
  • 网站制作案例流程图网页设计作品集图片
  • 宜兴建设局质监网站网站开发如何适应各分辨率
  • 关于网站建设的简历网页数据抓取
  • 润滑油东莞网站建设技术支持怀化市建设局招投标网站
  • 电子商务网站建设的基本要素精准营销公司
  • 网站制作知识网站制作软件小学
  • 商标设计网站主要提供哪些服务火狐显示网站开发
  • 明港网站建设公司网站建设销售是做什么的
  • 网站建设教程公司湖南岚鸿o k长沙网站建设排名
  • wordpress建不了网站天津城乡住房建设厅网站首页
  • 游戏网站怎么制作海南网站推广建设
  • 免费申请空间网站专业网站制作服务
  • 网站关键词搜不到了合肥软件开发网站建设
  • 东莞网站推广营销上海网站建设公司招聘
  • 营销网站建设一薇网站开发的调研
  • 怎么做一个电子商务网站淘宝官网首页入口电脑版
  • 织梦cms官方网站温州通业建设工程有限公司网站
  • 鹤壁网站seo优化什么是优化问题