安装、小demo、基本的步骤
FastAPI 有两个依赖支持:
- Starlette负责网络
- Pydantic负责数据
安装:
安装命令
pip install fastapi
FastAPI 还需要ASGI服务器,生产环境下可以使用Uvicorn
pip install uvicorn[standard]
也可以使用以下命令安装所有依赖支持的库:
#该命令还安装了运行FastAPI应用的服务器 -uvicorn
pip install fastapi[all]
运行:
最简单的FastAPI文件所示如下:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {'message': "Hello World"}
复制代码到 main.py
运行代码:
uvicorn main:app --reload
运行命令说明:
- main:
main.py
是python 模块 - app:
main.py
中app = FastAPI()
创建的对象 - --reload:代码更新后,重启服务器,仅在开发时使用
也可以在main.py
里加上这段代码,然后python main.py
运行
import uvicorn
if __name__ == '__main__':
uvicorn.run('main:app', reload=True, host='127.0.0.1', port=8000)
API文档:
通过访问 http://127.0.0.1:8000/docs
可以查看自动生成的API文档。
创建FastAPI的基本步骤
第一步:导入FastAPI
FastAPI是继承了Starlette的类
FastAPI可以调用Starlette的所有功能
第二步:创建FastAPI实例
变量app是FastAPI的类实例,该实例是创建API的主要交互对象。
第三步:创建路径操作
路径是指URL的第一个反斜杠(/)及之后的内容。
https://example.com/items/foo
/items/foo 表示路径或路由或端点
操作是指HTTP方法,常用的方法如下:
- POST :创建数据
- GET :读取数据
- PUT :更新数据
- DELETE :删除数据
@app.get("/")告诉FastAPI下方函数以如下方式处理访问请求:
- 请求路径为
/
- 使用
get
操作
@app 语法是python装饰器
装饰器接收到下方函数,并用它执行一些操作,
本例中,这个装饰器告诉FastAPI下方函数对应的路径是 / 和 get 操作,这就是路径操作装饰器。
第四步:定义路径操作和函数
路径操作函数由以下几部分组成:
- 路径:
/
- 操作:
get
- 函数: 装饰器下方的函数
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
FastAPI每次接收使用get方法访问URL /
的请求时都会调用这个函数。本例中的路径操作函数是异步函数(async)
也可以不使用异步函数,例如:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
return {"message": "Hello World"}
第五步:返回内容
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
路径操作函数可以返回字典、列表以及字符串、整数等单值。
还可以返回Pydantic模型
安装、小demo、基本的步骤的更多相关文章
- H5 PWA技术以及小demo
H5 PWA技术 1.原生app优缺点 a.体验好.下载到手机上入口方便 b.开发成本高(ios和安卓) c.软件上线需要审核 d.版本更新需要将新版本上传到不同的应用商店 e.使用前需下载 2.we ...
- 新手 gulp+ seajs 小demo
首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1 ...
- Nancy之基于Self Hosting的补充小Demo
前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with OWIN 以demo的形式简单描述了一下. 这篇是为Self H ...
- Android -- 自定义View小Demo,动态画圆(一)
1,转载:(http://blog.csdn.NET/lmj623565791/article/details/24500107),现在如下图的效果: 由上面的效果图可以看到其实是一个在一个圆上换不同 ...
- React问答小demo
在学习react初期,看了一些视频和资料,react基础知识差不多学完,跟着网上的一个教程,做了一个小型的问答demo. 需求看图说: 1.点击"添加"按钮,显示问题输入表单,再次 ...
- 学习react,动手实现一个小demo(仿知乎问答)
学习react也有一周的时间,最近自己做了个仿知乎问答的小demo,项目源码在github上:https://github.com/yang302/reactQa 使用技术:bower+gulp+re ...
- 一周一个小demo — 前端后台的交互实例
这一周呢,本K在大神的指导下,完成了一个利用ajax与php文件上传处理相结合的一个留言板功能的小实例,下面就让本K来带大家瞅瞅如何实现这一种功能. 一.界面概览 首先我们来看一下这个小demo的具体 ...
- 一个基于ES6+webpack的vue小demo
上一篇文章<一个基于ES5的vue小demo>我们讲了如何用ES5,vue-router做一个小demo,接下来我们来把它变成基于ES6+webpack的demo. 一.环境搭建及代码转换 ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
- 11.Python使用Scrapy爬虫小Demo(新手入门)
1.前提:已安装好scrapy,且已新建好项目,编写小Demo去获取美剧天堂的电影标题名 2.在项目中创建一个python文件 3.代码如下所示: import scrapy class movies ...
随机推荐
- Day17:稀疏数组的超细详解
稀疏数组的超细详解 一个含有大量重复元素的二维数组,我们可以提取其有效元素,压缩空间,整合为一个稀疏数组. 例如一个五子棋棋盘,我们将棋盘看作为一个二维数组,没有棋子的位置为0:黑棋为1:白棋为2: ...
- 【devexpress】spinEdit控件如何设置只能输入两位小数
只需设置对应的正则表达式即可,我这里设置的是n2意思就是两位小数的意思 效果如下
- vulnhub靶场之Chronos:1
准备: 攻击机:虚拟机kali.本机win10. 靶机:Chronos,下载地址:https://download.vulnhub.com/chronos/Chronos.ova,下载后直接vbox打 ...
- Spring之SpringContext
一.概述 1.Spring Context概念 创建上下文并将BeanPostProcessor加载到spring 2.Spring Application Context概念 Spring通过应用上 ...
- Apache手动安装教程及报错解决梳理
操作参考教程:https://www.cnblogs.com/haw2106/p/9839655.html 下载地址(例):wget https://dlcdn.apache.org/httpd/ht ...
- 【每日一题】【暴力&双指针&动态规划】42. 接雨水-211130/220214
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水. 方法1:暴力求解(超时) import java.util.*; public class Solu ...
- GP之gpbackup备份
从GP6.0后,使用gpbackup命令来实现备份.但GP里是不自带的,需要自己重新下载并编译和安装. 一.安装 (1)master上go下载并配置profile环境变量 go下载地址 :https: ...
- TCP协议三握四挥、socket模块
目录 传输层之TCP与UDP协议 应用层 socket模块 socket代码简介 代码优化 半连接池的概念 传输层之TCP与UDP协议 用于应用程序之间的通信 TCP与UDP都是用来规定通信方式的 ...
- IPv4和IPv6地址的存取
存入IP地址时,使用inet_pton函数将输入的十进制字符串转出二进制.取出IP时再使用inet_ptop函数将"二进制整数"转成"点分十进制整数"显示.这两 ...
- ctfshow——萌新web3
题目如下: 源码分析: 通过id可以传入一个参数,对id的值进行了过滤,这里是正则匹配过滤,内容分析:or,-,\,*,<,>,!,x,hex,+.最外面的i是同时匹配过滤内容的大小写.在 ...