在日常运维工作中,经常性的会创造出一些快速脚本,用来提高工作效率.一直在想有没有可能写一个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(一)相关推荐

  1. Python培训分享:Python新版本中的6个新特性

    Python在几年做了一个全面的升级,此次Python升级中有6个新特性,本期小编为大家介绍的Python培训教程就是关于介绍Python新版本中的6个新特性的,来看看下面的详细介绍. Python培 ...

  2. python软件界面-python软件界面介绍(python软件介绍)

    python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...

  3. python语言简介-Python语言介绍

    原标题:Python语言介绍 Python简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其 ...

  4. python语言介绍-00-python语言介绍

    以下为摘录的python的介绍 Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行之前不需要编译.其他解释型语言还包括PHP和Ruby. Python是动态类型 ...

  5. Python 语言介绍

    本节目录: 一.编程语言介绍 二.python解释器介绍 三.安装python解释器 四.运行python程序的两种方式 五.变量 六.后期补充内容 一.编程语言介绍 1.机器语言: 直接用二进制编程 ...

  6. Python requests介绍之接口介绍

    Python requests介绍 引用官网介绍 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 允许你发送纯天然,植物饲养的 HTTP/1. ...

  7. Python Twisted 介绍

    Python Twisted介绍:http://blog.csdn.net/hanhuili/article/details/9389433 原文链接:http://www.aosabook.org/ ...

  8. 全栈开发-Python的介绍

    全栈开发-Python的介绍 本篇刚要 Python的诞生 Python的应用领域 Python的优缺点 Python的解释器 Python的发展史 Python2 or Python3? 一. Py ...

  9. Python详细介绍及使用(基础篇)

    Python详细介绍及使用(基础篇) 第一章 Python基础     Python的由来:1989年,为了打发圣诞节假期,Guido开始写Python语言的编译/解释器.Python来自Guido所 ...

最新文章

  1. rsync+shell脚本完成自动化备份
  2. mysql删除完全重复数据库_MySQL中删除完全重复数据的准确SQL语句
  3. 华为云API Explorer开发者生态平台正式上线
  4. php 调试 500,利用WordPress开发者调试模式解决PHP500内部服务器错误 | 骤雨打新荷...
  5. Dubbo本地伪装 Mock
  6. JS中showModalDialog (模态窗口)详细使用
  7. NLog文章系列——入门教程(转)
  8. 最新win7/win10/XP系统下载_「装机系统」_百度云
  9. windows下的Zcash钱包(ZEC钱包)-zcash4win 1.0.11
  10. 日工资,月工资,加班费,个人所得税,年终奖计算方法
  11. sap系统和服务器的关系,erp系统和sap系统的区别
  12. 宝塔面板配置服务器代理
  13. iOS 开发中的日期格式
  14. 打造综合娱乐性平台,TCL爱奇艺电视体验记
  15. 4G时代 运营商的经营模式变化
  16. NGINX免费配置二级域名及同时开启HTTPS(HTTP强制转HTTPS)nodejs的express后端项目,前端next.js的SSR项目
  17. Android 汇集CSDN、GitHub等最实用的良心之作-KING
  18. 团队管理4 | 技术管理如何兼顾技术
  19. SK海力士量产业界最高容量的移动端DRAM
  20. 呜啦啦啦~我胡汉三又回来了

热门文章

  1. data.DataLoader 数据丢失 不能复用
  2. 深度学习之自编码器AutoEncoder
  3. idea provided和compile区别
  4. c++优化工具Gprof
  5. OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔总结
  6. 二、MySql优化七个查询命令特征
  7. matlab能修图吗,相机上这个“功能”,不打开会影响修图效果,别等拍完照片才知道...
  8. java pages_Java Server Pages 内置对象
  9. linux nat 日志,IPtables日志管理  (记录NAT信息)
  10. thymeleaf的能用在什么地方_细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!