FastAPI-环境搭建以及第一个demo

2022-12-02 15:19:03 浏览数 (1)

最近参加了一个小额付费的fastapi的训练营,其实以前也有参加过类似的一些小额的课程,不过都没坚持去学,最近开始看看视频简单的了解一些fastapi的快速入门的一些基本操作,现在将学习笔记记录一下。

一、环境安装

fastapi是python里面的一个web框架,安装的话使用pip install 去进行安装即可:

代码语言:javascript复制
pip install fastapi

接下来,写完fastapi的代码之后,需要启动服务的话 ,可以使用uvicorn:

代码语言:javascript复制
pip install uvicorn

按照官方文档的话 ,安装最少依赖的话,可以用下面的命令:

代码语言:javascript复制
pip install "uvicorn[standard]"

官方文档链接:

https://fastapi.tiangolo.com/deployment/manually/

官方文档中有介绍3种方式去运行脚本,感兴趣的可以自己去扩展学习:

以上的安装的话,只是安装了最简单的fastapi插件,如果想一次安装所有插件的话,可以使用下面的命令:

代码语言:javascript复制
pip install fastapi[all]

使用上面的命令的话,会自动安装uvicorn插件:

二、案例编写

一般初学编程,都是从helloworld开始的,今天,我们也从helloworld开始,定义一个接口,返回“Hello world”:

代码语言:javascript复制
def sayHi():
    return {"message":"Hello world,welcome to view 小博测试成长之路"}

既然是学习fastapi,那么肯定需要导入fastapi的包,下面直接看一个最简单的demo,定义一个sayHi的函数,并且指定在用get请求调用的时候,直接在页面输出一段文字。

py代码文件名:myapi.py

代码语言:javascript复制
import uvicorn
from fastapi import FastAPI

api = FastAPI()  


@api.get("/")
def sayHi():
    return {"message":"Hello world,welcome to view 小博测试成长之路"}


# 启动uvicorn服务,默认端口8000
if __name__ == '__main__':
    uvicorn.run('myapi:api')

说明:

启动的时候,要注意FastAPI() 的实例名以及脚本的文件名都要对应上,不然到时候明明是按照别人写的文章运行的呀,为什么就报错了呢。

uvicorn.run('myapi:api'):冒号前面的myapi对应的是py文件名,冒号后面的api对应的是FastAPI() 的实例名。

三、运行脚本

如果用命令行运行的话,进入到py文件所在的目录,然后执行命令:

uvicorn myapi:api 即可启动一个后台服务,端口默认为8000:

如果是要一遍调试脚本,又不想重新运行脚本的话,可以加一个--reload参数,即:uvicorn myapi:api --reload ,这样的话,在代码里面加一个方法之后,就可以立刻看到效果。

如果是不用命令行运行的话,那就可以用uvicorn.run:

代码语言:javascript复制
if __name__ == '__main__':
    uvicorn.run('myapi:api',reload=True,port=8000,debug=True)

在浏览器中打开地址访问后,如果在后面加一个/docs,访问:http://127.0.0.1:8000/docs 即可访问到 fastapi 自动生成的接口文档,可用于提供接口文档,接口调试:

四、学习FastAPI能干什么?

之前的文章中也有提到,学一个知识点的时候,自己心里面就要想清楚,为什么要学这个,学完之后能干什么,只有带着这样的目的去学,才能更好的掌握技术。否则,学完之后不知道有什么用,等于白学。

通过这样一个简单的demo,可以看到,通过短短几行的代码,就可以快速搭建一个后台接口服务,那么,对于以后做自动化测试,或者平常工作中写一些造数据的接口之类的,都是非常方便快捷的。比如在使用postman做自动化的时候,如果要查库断言不好处理的话,就可以在后置脚本里面调自己启动的fastapi的接口去查数据进行断言。阻挡我们进步的并不是工具和技能的学习,而是当你拥有了很多资料去学习的时候,丧失了自己的判断力和思考只知道一味地跟着别人的思路走,没有形成自己思考的一个方式。

0 人点赞