良乡网站建设,西安市城乡建设网官方网站,品牌展板设计制作,中国建设教育协会证书查询网站目录 FastAPI学习记录项目结构部分接口/代码展示感受全部代码 FastAPI学习记录
fastapi已经学习有一段时间#xff0c;今天抽时间简单整理下。
官网介绍#xff1a; FastAPI 是一个用于构建 API 的现代、快速#xff08;高性能#xff09;的 web 框架#xff0c;使用 Py… 目录 FastAPI学习记录项目结构部分接口/代码展示感受全部代码 FastAPI学习记录
fastapi已经学习有一段时间今天抽时间简单整理下。
官网介绍 FastAPI 是一个用于构建 API 的现代、快速高性能的 web 框架使用 Python 3.6 并基于标准的 Python 类型提示。 快速可与 NodeJS 和 Go 并肩的极高性能归功于 Starlette 和 Pydantic最快的 Python web 框架之一。 高效编码提高功能开发速度约 200 至 300。* 更少 bug减少约 40 的人为开发者导致错误。* 智能极佳的编辑器支持。处处皆可自动补全减少调试时间。 简单设计的易于使用和学习阅读文档的时间更短。 简短使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。 健壮生产可用级别的代码。还有自动生成的交互式文档。 标准化基于并完全兼容API 的相关开放标准OpenAPI (以前被称为Swagger) 和 JSON Schema。
如果还没学过的同学可先了解如 pydantic、fastapi、sqlalchemy、请求/响应模型等有一定认识。 以下分享本次所学习的资料
本次学习视频(推荐)https://www.imooc.com/video/22971
fastapihttps://fastapi.tiangolo.com/zh
pydantic 官方文档https://docs.pydantic.dev
pydantic 支持所有的类型https://docs.pydantic.dev/usage/types项目结构
fastapi基本大同小异 如果是多个应用则可以再往上提一层如 admin 下的app下的等等
部分接口/代码展示
仅仅刚开始学习增删查改目前只涉及增、查未有删改相信也是会很快上手的。 个人感觉主要是 pydantic schemas 这块要梳理清楚增删查改该怎样编排使得在编码时更方便。 全部代码将放在最后 接口文档打开链接http://127.0.0.1:8000/docs/ppl/index
from fastapi import APIRouter, Depends, status
from sqlalchemy.orm import Session
from fastapi.responses import JSONResponse
from models.database import Base, engine, get_db
from schemas import schema_user
from cruds import crud_userapi_user APIRouter()
Base.metadata.create_all(bindengine)api_user.post(/add, response_modelschema_user.GetUser)
def add_user(user: schema_user.CreateUser, work: schema_user.CreateWork, db: Session Depends(get_db)):if crud_user.get_user(db, phoneuser.phone):return JSONResponse(status_codestatus.HTTP_400_BAD_REQUEST, content{code: 0,message: 该手机号已被注册})return crud_user.add_user(db, user, work)api_user.get(/get, response_modelschema_user.GetUser)
def get_user(id: int None, phone: int None, db: Session Depends(get_db)):user crud_user.get_user(db, id, phone)if not user: return JSONResponse(status_codestatus.HTTP_200_OK, content{})return userapi_user.get(/list, response_modellist[schema_user.GetUser])
def list_user(skip: int 1, limit: int 10, db: Session Depends(get_db)):user_list crud_user.get_user(db, skipskip, limitlimit)if not user_list: return JSONResponse(status_codestatus.HTTP_200_OK, content[])return user_list
感受
值得学习pydantic 真不错但是类似编排是比较麻烦了点可能是本人代码量还不够、不熟练等因素不过也准备能开始无脑增删查改还需要学习jwt鉴权、中间件、redis异步后台任务、日志记录等等。 docs接口文档真不赖生成可视化文档、标注等直接能调试…方便
全部代码
右键点我(gitee)