开始学fastapi

简介: 开始学fastapi

大家好,这里是米洛,一个想和大家一起分享测试开发相关的技术,面试经验和成长经历的博主!


FastApi简介


官网地址: https://fastapi.tiangolo.com/zh/

FastApi是最近(具体啥时候开始我也不知道)很火的一个Python web框架,其实我对他了解也不够多,那咱们来看看他的官方文档吧。

12.jpg

image

基本上可以瞅到几个关键字,一马当先的就是快。那么她有多快呢,这边写到了Go,我本身呢是个go语言使用者,身上随身带个if err != nil,很合逻辑吧!

其他的咱们都可以不用看,那都是虚的,其实我就想知道这玩意有多。是不是真的和他标榜的那样,和go肩并肩。

试水


所以我开始了自己的一次尝试,昨天晚上我特意搭建了一个FastApi服务,跑了跑。虽然我本身没用过django,但是大概也知道django的全面,各个组件应有尽有,简直就是精装修,拎包入住即可。那FastApi呢?测试开发干货群的大佬们形容他是毛坯中的毛坯,意思是啥组件都需要自己写,核心库比不上Flask多,更别说django了,django,yyds!

但是我本身对于新鲜事物还是很好奇的,所以就忍不住体验了一把。如果这是一篇测评文章的话,那我的测评进度可能才到5%,不过就算是这样,我也觉得FastApi应当是一款不错的web框架。

爱之初体验


  • 安装fastapi


pip install fastapi
  • 安装uvicorn


pip install uvicorn
  • 新建一个main.py


from typing import Optional
from fastapi import FastAPI
from pydantic import BaseModel
class Item(BaseModel):
    name: int
    description: Optional[str] = None
    price: float
    tax: Optional[float] = None
app = FastAPI()
@app.post("/items/")
async def create_item(item: Item):
    return item

整体风格有点像Flask,所以上手比较快。这个可能也是我想试试的原因之一。上面的class定义了接受的参数,以往我们用flask接受参数的话一般用request.get_data()或者get_json(),其实我写惯了go之后还是很不习惯的,因为我还是认为对象字典好使,而且这个item对象实现了dict()方法,也可以随时转为dict。说句实话,这点确实方便。

13.jpg

image

  • 在main.py同级目录启动服务


uvicorn main:app --reload

--reload参数指的是热更新部署,意思是可以在代码发生变动的时候自动重启服务,使得代码生效

方便还是挺方便的。

看看控制台


14.jpg

image

长的是喜欢的样子!假设我更新下代码:

15.jpg

image

可以看到服务自动reload了。这点还挺方便的~

计划

计划是把现有的Flask改为FastApi,趁着项目还小,行动起来。




相关文章
|
网络架构 Python
FastApi-18-APIRouter
FastApi-18-APIRouter
362 0
|
前端开发
FastApi-15-文件上传-3
FastApi-15-文件上传-3
270 0
|
3月前
|
JavaScript Shell API
FastAPI是什么?
FastAPI是一个现代、高性能的Python Web框架,专为构建API设计。它利用标准的Python类型提示,支持同步及异步编程,并借助Pydantic实现数据验证。FastAPI以卓越的性能媲美Node.js和Go,代码简洁优雅,能自动生成交互式API文档如Swagger UI和ReDoc,方便测试和调试。其对`async`和`await`的支持使之适用于WebSocket等高并发场景。快速上手仅需安装FastAPI和Uvicorn,编写少量代码即可启动服务并访问自动生成的文档界面。FastAPI不仅易于入门,还支持复杂的功能如依赖注入和后台任务,非常适合追求高性能和快速开发的项目。
|
3月前
|
设计模式 API Python
Python Web:Django、Flask和FastAPI框架对比
Python Web:Django、Flask和FastAPI框架对比
93 0
|
3月前
|
JavaScript API Go
fastapi之helloworld
fastapi之helloworld
|
4月前
|
Python
|
6月前
|
安全 API Python
FastAPI入门指南
FastAPI是基于Python类型提示的高性能Web框架,用于构建现代API。它提供高性能、直观的编码体验,内置自动文档生成(支持OpenAPI)、数据验证和安全特性。安装FastAPI使用`pip install fastapi`,可选`uvicorn`作为服务器。简单示例展示如何定义路由和处理函数。通过Pydantic进行数据验证,`Depends`处理依赖。使用`uvicorn main:app --reload`启动应用。FastAPI简化API开发,适合高效构建API应用。5月更文挑战第21天
192 1
|
6月前
|
缓存 中间件 API
FastAPI
【2月更文挑战第1天】FastAPI是一个用于构建API的现代、快速的Python Web框架,具有以下特点:
132 9
|
6月前
|
机器学习/深度学习 JSON API
Pydantic
Pydantic是一个Python数据模型库,它提供了一种简单的方式来定义和验证Python对象的结构和类型。 Pydantic基于Python的类型提示系统,允许使用类型注解来定义数据模型的字段和约束,并提供了一些方便的工具和API来验证和转换数据。
78 8