学习AI大模型的第一个月,python后端制作
AI学习python、mysql、fastAPI制作后端API最近在杭州学习ai大模型学习了一个月学会了如何用python制作fastAPI前端按老师讲的用cursor写的用的vue框架今天做个学习笔记。1、写后端fastAPI整理思路创建项目products有dbappmodel三个文件夹。首先写model使用pydantic库的BaseModel分别写每个table的Request类和Response类按照对应数据库的字段写每个属性的类型。db写基础数据库的连接信息如下importpymysqldefgetConnection():connpymysql.connect(hostlocalhost,port3306,userroot,password123456,dbdb_test,charsetutf8,autocommitTrue,cursorclasspymysql.cursors.DictCursor)returnconn他的意思是使用的自己系统安装的mysql端口为3306用户名密码用哪个数据库编码格式写sql语句自动提交返回字段强制转换为dict字典格式。它介绍了我的后端数据库信息使用的是windows10系统安装的mysql问了第二阶段的新老师找到的windows安装包)。然后写app这个是路由的意思fromfastapiimportFastAPIfromfastapi.middleware.corsimportCORSMiddlewarefromappimportproductsRouter,categoriesRouter,usersRouter,ordersRouter,orderItemsRouter appFastAPI(title商品,description商品API,version0.1.0)app.add_middleware(CORSMiddleware,allow_origins[http://localhost:5173,http://127.0.0.1:5173],allow_credentialsTrue,allow_methods[*],allow_headers[*],)app.include_router(productsRouter.router,prefix/api/products,tags[商品])app.include_router(categoriesRouter.router,prefix/api/categories,tags[商品分类])app.include_router(usersRouter.router,prefix/api/users,tags[用户])app.include_router(ordersRouter.router,prefix/api/orders,tags[订单])app.include_router(orderItemsRouter.router,prefix/api/order_items,tags[订单明细])app.get(/)defread_root():return{message:Hello World}if__name____main__:importuvicorn uvicorn.run(main:app,host127.0.0.1,port8000,reloadTrue)这段的意思就是后端的开启文件中间app.include_router语句是链接要写的数据表的操作路由每个代表一个表的增删改查操作。我例举一个fromfastapiimportAPIRouter,Dependsfromdb.databaseimportgetConnectionfrommodel.categoriesimportCategoriesRequest,CategoriesResponse routerAPIRouter()# 添加商品分类router.post(/add_categories)defadd_categories(categories:CategoriesRequest,connDepends(getConnection)):withconn.cursor()ascursor:sql insert into categories( category_id, category_name, parent_category_id, description )values(%s,%s,%s,%s) paramscategories.to_tuple()cursor.execute(sql,params)cursor.execute(select * from categories where category_id%s,(categories.category_id,))resultcursor.fetchone()conn.close()returnresult# 获取单个商品分类router.get(/get_categories)defget_categories(category_id:str,connDepends(getConnection)):withconn.cursor()ascursor:sqlselect * from categories where category_id%scursor.execute(sql,(category_id,))resultcursor.fetchone()conn.close()returnresult# 根据商品分类id删除对应商品分类返回删除成功router.delete(/delete_categories)defdelete_categories(category_id:str,connDepends(getConnection)):withconn.cursor()ascursor:sqldelete from categories where category_id%scursor.execute(sql,(category_id,))conn.close()return{message:删除成功}# 输入商品分类名称页码每页大小显示商品分类信息router.get(/get_categories_by_name)defget_categories_by_name(category_name:str,page:int1,page_size:int10,connDepends(getConnection)):offset(page-1)*page_sizewithconn.cursor()ascursor:sql select * from categories where category_name like %s limit %s,%s cursor.execute(sql,(%category_name%,offset,page_size))resultcursor.fetchall()conn.close()return{categories:result}# Changed from return result to return {categories: result}# 修改商品分类信息返回修改了的商品分类信息,parent_category_id 字段可以为空router.put(/update_categories)defupdate_categories(categories:CategoriesRequest,connDepends(getConnection)):withconn.cursor()ascursor:sql update categories set category_name%s, parent_category_id%s, description%s where category_id%s params(categories.category_name,categories.parent_category_id,categories.description,categories.category_id)cursor.execute(sql,params)cursor.execute(select * from categories where category_id%s,(categories.category_id,))resultcursor.fetchone()conn.close()returnresult不知道写的好不好用pycharm写的我自己是可以读懂当然也用了安装的CN插件现在大概都要用快。然后就是测试这是fastAPI自带的测试界面。我自己写了两个表的分路由信息都是繁琐的重复操作第一次也容易出错。然后打开cusor写前端这里不得不提一嘴现在的代码工具真强大当然他这里要先安装一个工具node.js我也不知道是做什么的有懂行的可以教教我反正老师说得安装一个不然没法运行vue框架。安装这里教的前后端步骤打开然后让他把剩下的后端分路由API写了在接上前端如图最后的结果就出来了自己写一个小系统成就感满满感谢能看到这里接下来我们会学习第二阶段的大模型知识有时间的话我会继续分享。

相关新闻

C++进程创建与外部程序调用:fork与exec原理与实践

C++进程创建与外部程序调用:fork与exec原理与实践

1. 项目概述:为什么要在C里“生个孩子”去跑别的程序?在C的世界里,我们写的程序常常需要“呼朋唤友”,调用一些现成的外部工具或脚本来完成特定任务。比如,你的一个数据处理程序,可能需要调用系统自带的gzi…

2026/7/13 2:15:16阅读更多 →
AI Agent自主技能生成:self-learning-skills实现知识沉淀与复用

AI Agent自主技能生成:self-learning-skills实现知识沉淀与复用

你有没有遇到过这样的场景:每次让 AI Agent 帮你研究一个新框架或工具,它都要从头开始搜索、阅读文档、整理要点,就像第一次接触一样?更让人头疼的是,当你下次需要类似信息时,它又得重新走一遍这个流程。这…

2026/7/13 2:15:16阅读更多 →
大模型应用开发实战:从RAG到多智能体工作流架构解析

大模型应用开发实战:从RAG到多智能体工作流架构解析

如果你最近关注大模型技术,可能会被各种新概念轰炸:Agent、Agentic RAG、LangChain、多智能体……每个词听起来都很重要,但连起来却像一团迷雾。更让人困惑的是,当你尝试上手时,发现官方文档动辄几十页,代码…

2026/7/13 2:15:16阅读更多 →
PyTorch实战入门:从数据加载到模型训练的端到端工程化指南

PyTorch实战入门:从数据加载到模型训练的端到端工程化指南

1. 这不是又一篇“Hello World”式PyTorch入门——而是一份我带过27个实习生、亲手调过43个CV/NLP小项目后,撕掉所有官方文档重写的实操手记你点开这篇,大概率正站在两个路口:一边是刚学完Python基础,对着import torch发呆&#x…

2026/7/13 3:45:25阅读更多 →
Pandas多维聚合实战:银行级生产分析的正确写法

Pandas多维聚合实战:银行级生产分析的正确写法

1. 项目概述:为什么“多维聚合”不是Pandas进阶技巧,而是业务分析的生存技能我在银行风控部门干了七年,从刚毕业写SQL查数的分析师,到带三个人小团队做反欺诈模型的数据架构师。这七年里,我亲手重构过四套核心报表系统…

2026/7/13 3:45:25阅读更多 →
多模态大模型实战指南:从原理到部署的完整流程

多模态大模型实战指南:从原理到部署的完整流程

1. 多模态大模型到底解决什么问题,适合谁上手如果你正在处理需要同时理解图像、文本、音频甚至视频的任务,比如给图片生成描述、从视频里提取关键信息、或者基于图文内容做问答,那么多模态大模型就是你现在最该关注的方向。它和传统的单模态模…

2026/7/13 3:45:25阅读更多 →
从Prompt到Agent:大模型应用的技术演进与实战指南

从Prompt到Agent:大模型应用的技术演进与实战指南

1. 先搞清楚这些技术到底解决什么问题如果你最近在接触大模型相关项目,可能会被各种新概念搞晕:Agent、Agentic RAG、Prompt Engineering、多智能体协作...这些技术迭代确实快,但核心脉络其实很清晰——它们都在解决同一个问题:如…

2026/7/13 3:45:25阅读更多 →
大模型技术架构解析:从Transformer到Agentic RAG的演进路径

大模型技术架构解析:从Transformer到Agentic RAG的演进路径

在大模型技术快速迭代的今天,很多开发者都感到学习压力巨大——新概念层出不穷,从Agent到Agentic RAG,从Prompt Engineering到多智能体系统,每个技术点都看似复杂。本文将通过系统化的技术脉络梳理,帮你建立对大模型底…

2026/7/13 3:45:25阅读更多 →
非刚性ICP算法:解决视频扩散模型3D点云生成质量难题

非刚性ICP算法:解决视频扩散模型3D点云生成质量难题

如果你最近尝试过用视频扩散模型生成3D内容,可能会遇到这样的困境:生成的3D点云看起来像一堆杂乱无章的"千层饼",根本无法在实际项目中使用。这背后的问题在于,传统方法在处理非刚性变形时往往力不从心。ECCV26的最新开…

2026/7/13 3:40:24阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/13 0:50:34阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

卡梅德生物技术快报|蛋白质分离纯化:肠激酶可溶性原核表达 + 两步层析全参数|标准化蛋白质分离纯化 SOP

研究痛点提出(提出问题)重组肠激酶是融合标签切除核心工具酶,当前原核表达体系存在三大标准化难题,直接阻碍可复现的蛋白质分离纯化流程搭建:Trx、GST、单 SUMO 标签融合产物绝大多数为包涵体,沉淀占比超 9…

2026/7/13 0:04:58阅读更多 →
语音转文字工具AsrTools:让音频整理变得简单高效

语音转文字工具AsrTools:让音频整理变得简单高效

语音转文字工具AsrTools:让音频整理变得简单高效 【免费下载链接】AsrTools ✨ AsrTools: Smart Voice-to-Text Tool | Efficient Batch Processing | User-Friendly Interface | No GPU Required | Supports SRT/TXT Output | Turn your audio into accurate text …

2026/7/13 0:04:58阅读更多 →
Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调整Palwor…

2026/7/13 0:04:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/11 16:20:28阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/11 23:15:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/12 21:43:43阅读更多 →