python fastapi_Python|介绍一下我的新伙伴fastapi(一)
在日常运维工作中,经常性的会创造出一些快速脚本,用来提高工作效率.一直在想有没有可能写一个Web工具,把这些常用的东西收集起来,用的时候直接点击拿到结果.这样即方便又能避免输错还不用登陆服务器显得更有效率.
直到我遇到了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。
我自己的一些感受
天然集成swagger,有了这个靠山,自然有了以下几大能力
界面有了
命令行很酷,键指如飞也很让人羡慕,但也仅而已了,真正牛掰的能力是复制,一旦你自身拥有了一项能力,你的团队同时俱备的这项能力,而且同你个人操作没有差别.这应该就是Web一直长盛不衰的本质所在.
入参出参一目了然
什么类型,是否必须,很直观的显示出来.以前做项目,写完实现,写注释,还要写接口文档给调用方,实在是费时费力,时间久了自己也不记得了.现在好了文档自动生成不说,忘记了直接打开看
界面调试
你很容易在浏览器里,直接调试你正在编写的接口.以前不觉得的什么,GET接口直接浏览器打开就好了,POST接口自己用curl或者postman造一下就行.现在好了直接内置这些技能,还给你自带一个curl的命令,方便你在命令行测试.当然输出也一目了然.
开发效率
这个要从几方面来说
自动重启
这个勉强算是吧,确切的说是uvicorn的能力,加了--reload参数,监控文件变化,自动重启
参数校验
明确定义参数和类型,少参数和类型不对的情况,fastapi帮你处理,这无形中是巨大的时间成本.
返回结果
默认json格式返回,以前处理完的结果,别管是数组还是字典都要json.dump一下.现在直接return好了.
兼容flask
确切的说不能算兼容,只能说语法类型,超级容易转换,只是获取参数的形式变一变,校验参数的部分拿掉,中间逻辑处理不变,返回结果时拿掉json转换
举例
转换前:
转换后:
其实早就知道swagger这一神奇存在,甚至在我用上了fastapi还专门搜索了一下swagger在nodejs,golang,java等的集成方式,发现都是以插件的形式存在,需要不少的定制才能work,当然flask也可以集成swagger,只是有天然集成的存在实在找不出继续使用flask的理由
一口气,泛泛的纸上谈兵说了这么多,后面还会有一些相应的主题跟进,比如写一个比较全的例子,入门更容易一些,还有一些相对高级的诸如安全相关的东西.
python fastapi_Python|介绍一下我的新伙伴fastapi(一)相关推荐
- Python培训分享:Python新版本中的6个新特性
Python在几年做了一个全面的升级,此次Python升级中有6个新特性,本期小编为大家介绍的Python培训教程就是关于介绍Python新版本中的6个新特性的,来看看下面的详细介绍. Python培 ...
- python软件界面-python软件界面介绍(python软件介绍)
python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...
- python语言简介-Python语言介绍
原标题:Python语言介绍 Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其 ...
- python语言介绍-00-python语言介绍
以下为摘录的python的介绍 Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译.其他解释型语言还包括PHP和Ruby. Python是动态类型 ...
- Python 语言介绍
本节目录: 一.编程语言介绍 二.python解释器介绍 三.安装python解释器 四.运行python程序的两种方式 五.变量 六.后期补充内容 一.编程语言介绍 1.机器语言: 直接用二进制编程 ...
- Python requests介绍之接口介绍
Python requests介绍 引用官网介绍 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 允许你发送纯天然,植物饲养的 HTTP/1. ...
- Python Twisted 介绍
Python Twisted介绍:http://blog.csdn.net/hanhuili/article/details/9389433 原文链接:http://www.aosabook.org/ ...
- 全栈开发-Python的介绍
全栈开发-Python的介绍 本篇刚要 Python的诞生 Python的应用领域 Python的优缺点 Python的解释器 Python的发展史 Python2 or Python3? 一. Py ...
- Python详细介绍及使用(基础篇)
Python详细介绍及使用(基础篇) 第一章 Python基础 Python的由来:1989年,为了打发圣诞节假期,Guido开始写Python语言的编译/解释器.Python来自Guido所 ...
最新文章
- rsync+shell脚本完成自动化备份
- mysql删除完全重复数据库_MySQL中删除完全重复数据的准确SQL语句
- 华为云API Explorer开发者生态平台正式上线
- php 调试 500,利用WordPress开发者调试模式解决PHP500内部服务器错误 | 骤雨打新荷...
- Dubbo本地伪装 Mock
- JS中showModalDialog (模态窗口)详细使用
- NLog文章系列——入门教程(转)
- 最新win7/win10/XP系统下载_「装机系统」_百度云
- windows下的Zcash钱包(ZEC钱包)-zcash4win 1.0.11
- 日工资,月工资,加班费,个人所得税,年终奖计算方法
- sap系统和服务器的关系,erp系统和sap系统的区别
- 宝塔面板配置服务器代理
- iOS 开发中的日期格式
- 打造综合娱乐性平台,TCL爱奇艺电视体验记
- 4G时代 运营商的经营模式变化
- NGINX免费配置二级域名及同时开启HTTPS(HTTP强制转HTTPS)nodejs的express后端项目,前端next.js的SSR项目
- Android 汇集CSDN、GitHub等最实用的良心之作-KING
- 团队管理4 | 技术管理如何兼顾技术
- SK海力士量产业界最高容量的移动端DRAM
- 呜啦啦啦~我胡汉三又回来了
热门文章
- data.DataLoader 数据丢失 不能复用
- 深度学习之自编码器AutoEncoder
- idea provided和compile区别
- c++优化工具Gprof
- OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔总结
- 二、MySql优化七个查询命令特征
- matlab能修图吗,相机上这个“功能”,不打开会影响修图效果,别等拍完照片才知道...
- java pages_Java Server Pages 内置对象
- linux nat 日志,IPtables日志管理 (记录NAT信息)
- thymeleaf的能用在什么地方_细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!