首页 > 编程语言 >python系列:FASTAPI系列 01 环境准备 & FASTAPI系列 02-简单入门

python系列:FASTAPI系列 01 环境准备 & FASTAPI系列 02-简单入门

时间:2024-06-08 15:00:16浏览次数:28  
标签:02 系列 FASTAPI fastapi 0.0 服务器 FastAPI

FASTAPI系列 01 环境准备 & FASTAPI系列 02-简单入门




一、FASTAPI系列 01 环境准备

前言

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 Python Web 框架,由 Sebastián Ramírez 创建,适用于 Python 3.6 及更高版本。

提示:以下是本篇文章正文内容,下面案例可供参考

一、FASTAPI简介

  • 快速性能:FastAPI 利用 Python 的异步特性(asyncio)实现了高并发和低延迟,性能表现可媲美 Node.jsGo语言编写的同类应用。

  • 高效编码:FastAPI 基于 Python类型提示系统,这不仅有助于提高代码质量和可读性,而且还允许框架根据类型提示自动生成路由、请求体解析、参数验证等,极大地提升了开发效率,据称可以将开发速度提高200%300%

  • 较少的 Bug:通过 Pydantic 进行严格的类型检查和数据验证,FastAPI能够在编译阶段捕获许多潜在的错误,从而降低开发者因类型错误或数据问题引入的 Bug

  • 智能编辑器支持:由于对类型提示的良好支持,FastAPI 开发者能IDE 中享受到丰富的自动补全和实时错误检查功能。

  • 自动文档生成:FastAPI 自动根据代码中的类型提示生成交互式的 API 文档,兼容 OpenAPI 规范(Swagger UIReDoc),简化了 API 的管理和使用。

  • 数据验证和转换:使用 Pydantic 实现的数据模型可以直接应用于请求体和响应体,确保输入输出数据的有效性和一致性。

  • 依赖注入:内置对依赖注入的支持,使得服务之间解耦更加容易,增强了模块化和可测试性。

  • 扩展性:支持 WebSocketGraphQL,方便构建实时通信和灵活查询的 API,适应多种复杂应用场景。

二、环境准备

1.快速安装fastapi以及相关依赖

pip install fastapi[all]

2.创建项目

使用pycharm创建一个fastapidemo项目

在这里插入图片描述
安装对应fastpai的依赖包

在这里插入图片描述

安装成功显示Successfully

在这里插入图片描述
创建main.py文件,导入fastapi 确定安装成功

在这里插入图片描述

总结

FastAPI环境准备的核心工作包括正确安装FastAPI及相关工具链,并在适当的项目结构中初始化应用代码,确保所有依赖都得到妥善配置和管理

二、FASTAPI系列 02-简单入门

实现一个简单的例子

编写一个简单的get请求,请求/first路径,返回一个接口报文 {“message”:“Hello,Word!”}
创建一个main.py 文件,代码如下:

from fastapi import FastAPI

# 导入FastAPI模块并创建一个FastAPI实例
app = FastAPI()

# 使用装饰器@app.get("/")定义一个GET请求处理函数(endpoint)
# 当用户访问应用的根路径 "/" 时,root函数会被调用
@app.get("/first")
async def root():
    # 函数返回一个字典,内容为 {"message": "Hello World"}
    # 这个字典会被自动转换成JSON格式返回给客户端
    return {"message": "Hello World"}


if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

在这里插入图片描述

执行main函数方法,启动服务:

uvicorn.run(app, host=“0.0.0.0”, port=8000) 是在使用 Uvicorn 服务器启动一个 Web 应用程序时的命令。Uvicorn 是一个高性能 ASGI(Asynchronous Server Gateway Interface)服务器,特别适合服务于基于 Python 的异步框架,比如 FastAPI

  • uvicorn.run: 这是 Uvicorn 模块提供的一个函数,它负责启动 Web 服务器并运行指定的应用程序实例。

  • app: 这是您要运行的应用程序对象,通常是 FastAPIStarlette 创建的一个应用实例。这个对象包含了您的路由、视图函数等构成 Web 服务的所有内容。

  • host=“0.0.0.0”: 这个参数指定了服务器监听的主机地址。在这里,设置为 “0.0.0.0” 表示服务器将在所有可用网络接口上监听,包括本地回环接口(localhost)和任何公开的网络接口,这意味着其他设备可以通过该服务器所在的机器的 IP 地址访问此服务。

  • port=8000: 这是指定服务器监听的端口号,这里是 8000。通过这个端口,客户端可以通过 HTTP 协议与服务器进行通信。例如,要访问运行在此服务器上的应用,用户可以在浏览器中输入 http://your_server_ip:8000

在这里插入图片描述

使用浏览器访问:http://127.0.0.1:8000/first, 显示返回报文

在这里插入图片描述
FASTAPIswagger 文档,交互式API

在这里插入图片描述

使用swagger调用接口
在这里插入图片描述







lzq599220

FASTAPI系列 01 环境准备

FASTAPI系列 02-简单入门

标签:02,系列,FASTAPI,fastapi,0.0,服务器,FastAPI
From: https://blog.csdn.net/weixin_54626591/article/details/139419612

相关文章

  • 小端序题目——[LitCTF 2023]debase64
    还挺有价值的,记录一下题目DIEPE文件在Windows操作系统下默认使用小端序IDAmain函数绿框:输入长度要20红框:base64加密黄框:加密后的结果要与关键数据相等  获取数据,我一般喜欢调试看栈,这样就少一次翻转了 取出15个数据:0x46,0xED,0x18,0x96,0x56,0x9E,0xD2,......
  • 2024 年最全的 21 款数据恢复工具软件汇总
    使用其中任何一款免费数据恢复工具,您都可以找回那些您认为已经永远消失的文件。我根据这些程序对我而言的易用性和它们提供的功能对这些程序进行了排名。这些应用程序从您的硬盘、USB驱动器、媒体卡等恢复文档、视频、图像、音乐等。我建议每个计算机所有者都安装其中一个程......
  • java面试题及答案2024,java2024最新面试题及答案(之一)
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~本套Java面试题大全,全的不能再全,哈哈~一、Java基础1.JDK和JRE有什么区别?JDK:JavaDevelopmentKit的简称,java开发工具包,提供了java的开发环境和运行环境。JR......
  • java面试题及答案2024,java2024最新面试题及答案(之二)
    四、反射57.什么是反射?反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力Java反射:在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法Java反射机制主要提供了以下功能:在运行时判断任意一个对象所......
  • 初级算法02
    用时:2.5minclassSolution{publicvoidreverseString(char[]s){/**遍历左右指针交换字符*/intl=0,r=s.length-1;while(l<r){chart=s[l];s[l]=s[r];s[r]=t;l++;......
  • 赚钱信息差系列04-地图标注
    地图标注就是在各大地图平台,搜索位置,能导航过去。这是一个很久的项目,操作简单,需求大。新开的店,新公司,只要你有新地址,如果经常有人来,有地图标注会更好。我们自己公司就找人做的,有的收费几十,几百,上千的都有!感兴趣的老铁可以深入研究一下。更多给力副业项目、创业网课!请百度......
  • Springboot计算机毕业设计疫情蔬菜供给系统演示录像2022【附源码】开题+论文+mysql+程
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景2022年,全球仍受到新冠疫情的深远影响。在疫情期间,人们的生活方式和消费习惯发生了显著变化,尤其是在食品采购方面。蔬菜作为日常生活的必需品,其供给稳......
  • 2024年5月文章一览
    2024年5月编程人总共更新了7篇文章:1.2024年4月文章一览2.《自动机理论、语言和计算导论》阅读笔记:p215-p3513.《自动机理论、语言和计算导论》阅读笔记:p352-P4014.《自动机理论、语言和计算导论》阅读笔记:p402-p4275.《自动机理论、语言和计算导论》阅读笔记:p428-p5256.《编......
  • 【免费Web系列】JavaWeb实战项目案例七(项目结束)
        这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r  登录认证在前面的课程中,我们已经实现了部门管理、员工管理的基本功能,但是大家会发现,我们并没有登录,就直接访问到了Tlias智能学习辅助系统的后台。这是不安全的,所以我们今天的主题就是登录......
  • 【免费Web系列】大家好 ,今天是Web课程的第十六天点赞收藏关注,持续更新作品 !
         这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547rAOP1.AOP基础接下来我们进入到AOP的学习。AOP也是spring框架的第二大核心,我们先来学习AOP的基础。在AOP基础这个阶段,我们首先介绍一下什么是AOP,再通过一个快速入门程序,让大家快速体验AOP......