写点什么

FastApi-01- 初识

发布于: 2021 年 08 月 02 日
FastApi-01-初识

FastApi 是什么


顾名思义,FastApi 就是一个用于构建高性能 api 的 web 框架。

FastApi 的特点

  • 快速:比肩 NodeJs 和 Go

  • 高效:开发效率提升一倍多

  • 少 BUG:减少开发错误率

  • 智能:自动补全

  • 简单:易于学习

  • 简短:代码简小精悍

  • 健壮:生产级别可用

  • 文档:自动生成交互式文档

  • 标准化:基于 OpenApi

FastApi 的安装

pip install fastapi[all]
复制代码

FastApi 之 hello world

main.py

from fastapi import FastAPI
app = FastAPI()
@app.get('/')async def root(): return {'message':'hello world!'}
复制代码

命令行启动

uvicorn.exe main:app --reloadINFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)INFO:     Started reloader process [18784] using statreloadINFO:     Started server process [23504]INFO:     Waiting for application startup.INFO:     Application startup complete.   
复制代码


打开 http://127.0.0.1:8000 查看效果



可以看到,后台程序已经成功返回。

主函数启动

from fastapi import FastAPIimport uvicorn
app = FastAPI()
@app.get('/')async def root(): return {'message':'hello world!'}
if __name__ == "__main__": uvicorn.run(app='main:app',host='127.0.0.1',port=8765,reload=True,debug=True)
复制代码


启动:


python main.py
复制代码

交互式的 API 文档

docs

浏览器访问:127.0.0.1:8765/docs



展开看下接口详细信息



点击右侧的 Try it



即可实现接口调试!


完美!

redoc

浏览器访问:127.0.0.1:8765/redoc


FastApi 和 Flask 的区别

经常看到有人把 FastAPI 和 Flask 放到一起比较,但是却没有意识到这完全是两种东西——前者是基于 Web 框架 Starlette 添加了 Web API 功能支持的(框架之上的)框架,而后者是和 Starlette 同类的通用 Web 框架,所以他两本就不是相同的东西,所以还是不要强行比较,选择适合自己的才是正确的。


至于说 FastApi 使用了 asyncio 而使得它的性能提升很大,在我看来没有网上介绍的那么夸张。因为在 gevent 的加持下,其他 web 框架也可以做到很高的并发,况且一般的服务都是会借助中间件和集群来实现高并发的,所以对于 FastApi 的高性能大家还是理性看待。感兴趣的同学可以去测试看看实际的结果。


本系列主要是介绍 FastApi 这个新的 web 框架,让大家能够对它有所了解,从而合理使用。


至此,FastApi 的简单介绍结束。


感谢您的阅读,别忘了关注,点赞,评论,转发四连哟!

发布于: 2021 年 08 月 02 日阅读数: 8
用户头像

公众号:Python测试和开发 2018.10.14 加入

混迹于云原生领域的测试开发。

评论

发布
暂无评论
FastApi-01-初识