FastAPI-环境搭建以及第一个demo
最近参加了一个小额付费的fastapi的训练营,其实以前也有参加过类似的一些小额的课程,不过都没坚持去学,最近开始看看视频简单的了解一些fastapi的快速入门的一些基本操作,现在将学习笔记记录一下。
一、环境安装
fastapi是python里面的一个web框架,安装的话使用pip install 去进行安装即可:
pip install fastapi
接下来,写完fastapi的代码之后,需要启动服务的话 ,可以使用uvicorn:
pip install uvicorn
按照官方文档的话 ,安装最少依赖的话,可以用下面的命令:
pip install "uvicorn[standard]"
官方文档链接:
https://fastapi.tiangolo.com/deployment/manually/
官方文档中有介绍3种方式去运行脚本,感兴趣的可以自己去扩展学习:
以上的安装的话,只是安装了最简单的fastapi插件,如果想一次安装所有插件的话,可以使用下面的命令:
pip install fastapi[all]
使用上面的命令的话,会自动安装uvicorn插件:
二、案例编写
一般初学编程,都是从helloworld开始的,今天,我们也从helloworld开始,定义一个接口,返回“Hello world”:
-
def sayHi():
-
return {"message":"Hello world,welcome to view 小博测试成长之路"}
既然是学习fastapi,那么肯定需要导入fastapi的包,下面直接看一个最简单的demo,定义一个sayHi的函数,并且指定在用get请求调用的时候,直接在页面输出一段文字。
py代码文件名:myapi.py
-
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:
-
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的接口去查数据进行断言。阻挡我们进步的并不是工具和技能的学习,而是当你拥有了很多资料去学习的时候,丧失了自己的判断力和思考只知道一味地跟着别人的思路走,没有形成自己思考的一个方式。
看完后,觉得有收获的话,不妨点个赞或者转发支持一下吧~想和行业大佬们一起学习交流的,可以添加好友邀请加入。
文章来源: xiaobotester.blog.csdn.net,作者:小博测试成长之路,版权归原作者所有,如需转载,请联系作者。
原文链接:xiaobotester.blog.csdn.net/article/details/126564772
- 点赞
- 收藏
- 关注作者
评论(0)