FastApi-1-结合sql 增/查demo

这篇具有很好参考价值的文章主要介绍了FastApi-1-结合sql 增/查demo。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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
fastapi:https://fastapi.tiangolo.com/zh
pydantic 官方文档:https://docs.pydantic.dev
pydantic 支持所有的类型:https://docs.pydantic.dev/usage/types

项目结构

fastapi基本大同小异
FastApi-1-结合sql 增/查demo,fastapi,sql,数据库
如果是多个应用则可以再往上提一层,如 admin 下的,app下的等等

部分接口/代码展示

仅仅刚开始学习,增删查改目前只涉及,增、查,未有删改相信也是会很快上手的。
个人感觉主要是 pydantic schemas 这块要梳理清楚,增删查改该怎样编排,使得在编码时更方便。
全部代码将放在最后!
接口文档打开链接:http://127.0.0.1:8000/docs/ppl/index
FastApi-1-结合sql 增/查demo,fastapi,sql,数据库

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_user

api_user = APIRouter()
Base.metadata.create_all(bind=engine)


@api_user.post('/add', response_model=schema_user.GetUser)
def add_user(user: schema_user.CreateUser, work: schema_user.CreateWork, db: Session = Depends(get_db)):
    if crud_user.get_user(db, phone=user.phone):
        return JSONResponse(status_code=status.HTTP_400_BAD_REQUEST, content={
            'code': 0,
            'message': '该手机号已被注册'
        })
    return crud_user.add_user(db, user, work)


@api_user.get('/get', response_model=schema_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_code=status.HTTP_200_OK, content={})
    return user


@api_user.get('/list', response_model=list[schema_user.GetUser])
def list_user(skip: int = 1, limit: int = 10, db: Session = Depends(get_db)):
    user_list = crud_user.get_user(db, skip=skip, limit=limit)
    if not user_list: return JSONResponse(status_code=status.HTTP_200_OK, content=[])
    return user_list

感受

值得学习,pydantic 真不错,但是类似编排是比较麻烦了点,可能是本人代码量还不够、不熟练等因素,不过也准备能开始无脑增删查改!!!还需要学习jwt鉴权、中间件、redis,异步后台任务、日志记录等等。
docs接口文档真不赖,生成可视化文档、标注等,直接能调试…方便!

全部代码

右键点我(gitee)文章来源地址https://www.toymoban.com/news/detail-653554.html

到了这里,关于FastApi-1-结合sql 增/查demo的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练

    记录一次vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练的过程。 Naive UI 是一个 Vue3 的组件库。 FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。 fastapi-backend 后端目录 vue-frontend 前端目录 这里我只贴一些关

    2024年02月06日
    浏览(46)
  • 【FastAPI】P1 安装与第一个 FastAPI 应用

    FastAPI 是用于快速构建 API 的 web 框架,依赖 Python 3.8 及更高版本。使用 pip 命令安装 fastapi : 安装异步处理 ASGI 的服务器 Uvicorn : 补充知识: Uvicorn 是 ASGI 的一个实现,它基于 Starlette 和 Uvicorn 的异步服务器,能够为 Django、FastAPI 等应用提供高性能的服务。 ASGI 异步处理服务

    2024年02月20日
    浏览(38)
  • FastAPI(七)应用配置

    目录 一、在apps下新建文件夹config 二、新建配置文件app_conf.py   一、在apps下新建文件夹config 二、新建配置文件app_conf.py  

    2024年02月14日
    浏览(54)
  • fastapi 入门系列

    大纲 1.1 什么是FastAPI 1.1 什么是FastAPI FastAPI是一个现代、快速(高性能)的Web框架,用于构建API。它基于Python 3.7+的类型提示(type hints)和异步编程(asyncio)能力,使得代码易于编写、阅读和维护。FastAPI具有自动交互式文档(基于OpenAPI规范和JSON Schema)、数据验证、依赖注入

    2024年02月07日
    浏览(35)
  • FastAPI 5 - 依赖、安全

    学习自:FastAPI教程第二季(三):依赖+安全(最快python异步并发web框架之一) https://www.bilibili.com/video/BV1p7411Z736 官方说明

    2024年02月14日
    浏览(41)
  • FastAPI 使用记录

    core/worker.py fast_api.py requsts test

    2024年02月07日
    浏览(41)
  • fastapi-跨域、静态文件添加

    可以参考这个博客 https://blog.csdn.net/weixin_43361136/article/details/129300966 可以参考下面的博客 https://blog.csdn.net/bosivip/article/details/128141950

    2024年02月13日
    浏览(40)
  • FastAPI入门

    目录 FastAPI FastAPI 是什么 为什么要用 FastAPI FastAPI 入门 安装 用 FastAPI 写个接口 调试接口 创建快捷请求 保存为快捷请求 发送请求 总结 FastAPI 是什么 什么是 FastAPI 呢? FastAPI 是 Python 的一个框架,如果要类比的话,那就是: Nodejs 和 Nestjs Java 和 Spring Php 和 ThinkPhp   为什么要用

    2024年02月12日
    浏览(35)
  • 【FastAPI】路径参数(二)

    如果你有一个接收路径参数的路径操作,但你希望预先设定可能的有效参数值,则可以使用标准的 Python Enum 类型。 导入 Enum 并创建一个继承自 str 和 Enum 的子类。通过从 str 继承,API 文档将能够知道这些值必须为 string 类型并且能够正确地展示出来。 然后创建具有固定值的类

    2024年01月17日
    浏览(35)
  • fastapi篇(一)

    fastapi是一个高性能的web开发框架 性能极高,可与 NodeJS, Go 媲美。(得益于Starlette和Pydantic)。 Starlette 是一个轻量级 ASGI 框架/工具包。它非常适合用来构建高性能的 asyncio 服务,并支持 HTTP 和 WebSockets。 官方网址:https://www.starlette.io/   Pydantic 是一个使用Python类型提示来进行数

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包