FastAPI简介与快速体验
【原文链接】FastAPI简介与快速体验
文章目录
- 一、FastAPI简介
- 二、FastAPI的特点
- 三、安装
- 3.1 安装 fastapi
- 3.2 安装 ASGI 服务器
- 四、FastAPI快速体验
- 4.1 编写main.py文件
- 4.2 运行服务
- 4.3 观察服务运行结果
一、FastAPI简介
FastAPI是一个用于构建API的快速、高性能的WEB框架,使用Python3.6+并基于标准的Python类型提示。
二、FastAPI的特点
- 快速:可与NodeJS和GO比肩的极高性能,是执行速度最快的Python的web框架之一
- 高效编码:代码开发效率可提高至200%至300%
- 更少的Bug:可减少大约40%的开发者人为导致的Bug
- 智能:编辑器中自动补全和提示支持的非常好,可以大幅减少调试时间
- 简单:学习和使用起来非常的简单
- 健壮:代码具有很好的健壮性,而且还能自动生成帮助文档
- 标准化:完全兼容API的相关标准,自动支持Swagger接口文档
三、安装
3.1 安装 fastapi
pip install fastapi
3.2 安装 ASGI 服务器
pip install "uvicorn[standard]"
四、FastAPI快速体验
4.1 编写main.py文件
编写如下代码,即实例化了一个app的对象,然后编写了两个接口,其中helloworld接口无需填写参数,直接返回一个字典,而get_info接口需要在url中填写一个参数,同样也是返回一个字典
from fastapi import FastAPIapp=FastAPI()@app.get("/")
def helloworld():return {"Hello":"World"}@app.get("/user/{name}")
def get_info(name: str):return {"name":name}
4.2 运行服务
可以直接使用如下命令执行
PS G:\redrose2100.com\fast_api_demo> uvicorn main:app --reload
INFO: Will watch for changes in these directories: ['G:\\redrose2100.com\\fast_api_demo']
ERROR: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
PS G:\redrose2100.com\fast_api_demo>
显然这里报错了,报这个错误的原因是FastAPI默认的是使用8000端口,而当前本机已经占用8000端口了,因此可以通过–port参数修改端口,即再执行如下命令,即将端口修改为8080端口,可以看出此时已经运行起来了。
PS G:\redrose2100.com\fast_api_demo> uvicorn main:app --reload --port 8080
INFO: Will watch for changes in these directories: ['G:\\redrose2100.com\\fast_api_demo']
INFO: Uvicorn running on http://127.0.0.1:8080 (Press CTRL+C to quit)
INFO: Started reloader process [14840] using WatchFiles
INFO: Started server process [3664]
INFO: Waiting for application startup.
INFO: Application startup complete.
WARNING: WatchFiles detected changes in 'main.py'. Reloading...
INFO: Started server process [18188]
INFO: Waiting for application startup.
INFO: Application startup complete.
4.3 观察服务运行结果
直接使用浏览器打开 127.0.0.1:8080,则此时相当于调用了helloworld接口了,即直接返回一个字典了,如下:
打开 127.0.0.1:8080/docs 则可以打开FastAPI自带的swagger接口文档了,如下
可以将第一个接口展开,点击执行,如下,可以看到已经得到了返回值
把第二个接口展开,可以看到此时这里有一个必填参数,然后点击执行,即也得到了结果
至此就快速体验了一下FastAPI最简单的应用,使用起来非常的简单便捷
FastAPI简介与快速体验相关推荐
- WEEX框架(一)框架简介和快速上手体验
框架简介 Weex,是能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验的框架,并支持iOS.安卓.Web等多端部署,由阿里巴巴研发和维护. 对于移动开发者来说,W ...
- 【rnnoise快速体验】rnnoise从编译到训练
运行环境为Ubuntu18.04 C部分 下载源码 从github上下载源码,目前只有master分支,就拿master分支下来. 准备编译环境 干净的linux环境可能会没有安装gcc等编译工具 所 ...
- 基于android os 5.1,Android 5.1.1版氢OS快速体验
本文约5304字,需9分钟阅读(全文浏览) [更新2015.07.15]作为一加氢OS的内测成员,小编在今天收到了氢OS最新的测试包.然而这个测试包有些不一样,它不再是基于Android 5.0.2系 ...
- go test 如何输出到控制台_GO笔记之GO命令快速体验
上篇文章利用go run和go build命令分析介绍了GO的编译执行流程.GO提供给我们的命令当然远不止这两个.本文将在所能及的范围内,尽量地介绍GO提供的所有命令,从而实现对它们有个整体的认识. ...
- 【华为云技术分享】使用CloudIDE快速体验基于华为云ModelArts SDK的AI开发
华为云ModelArts一站式AI开发与管理平台,能够支撑开发者从数据到AI应用的全流程开发过程,包含数据处理.算法开发.模型训练.模型管理.部署等,支持图像分类.图像检测.视频分析.语音识别.产品推 ...
- 图数据库HugeGraph简介与快速入门
图数据库HugeGraph简介与快速入门 作者:胡佳辉(家辉),日期:2019年2月10日 CSDN博客:https://blog.csdn.net/gobitan 1. HugeGraph简介 1. ...
- uniapp开发:uniapp快速体验vue3.2之setup语法糖,怎么使用怎么爽
目录 概要 拉开序幕的setup语法糖 生命周期钩子 ref函数与reactive函数对比 computed计算属性 监视(watch.watchEffect) 组件注册 组件传值 provide/i ...
- Android 集成 Agora SDK 快速体验 RTC 版多人视频聊天|掘金技术征文
RTC (Real-Time Communication) 作为实时通讯领域的"新贵",在互动直播.远程控制.多人视频会议.屏幕共享等领域广受好评,如果你还不了解 RTC ,Tak ...
- 如何快速体验腾迅信鸽推送
作者:zhanhailiang 日期:2014-10-13 信鸽是什么 腾讯信鸽(XG Push)是一款专业的免费移动App推送平台,支持百亿级的通知/消息推送,秒级触达移动用户,现已全面支持Andr ...
最新文章
- 2021-2027年中国中高端女装行业市场分析预测及投资方向研究报告
- Forefront_TMG_2010-TMG建立站点间***
- makefile .phony targets
- 秒杀(PHP,Redis,Lua)
- 设计模式之简单工厂模式(静态工厂方法)
- 你有没有想过你的上级为什么让你干这件事情,他想干什么
- org.apache.hadoop.ipc.Client: Retrying connect to server异常的解决
- Typescript 基本类型
- muduo之FileUtil
- easyDarwin--开源流媒体实现
- Oracle从零开始04——SQL语句03——单行函数
- webkit如何实现JS DOM binding—基于V8分析
- 微服务和SOA架构的区别
- C#设置代码只在调试模式下执行
- Flask 跨域问题
- 轻量级ORM框架 Bankinate
- 【ThinkPHP5.0RC2吃螃蟹之】关于ThinkPHP5.0的渲染模板输出
- html把圆形分成10份,CSS八等分圆的实现示例
- 计算机青年教师基本功大赛,北京高校第九届青年教师基本功比赛纪实
- Linux ubuntu14.04 下 chromium 浏览器 CPU占用资源优化