介绍对象:FastApi
基于 Python 3.6+ 的高性能 Web 框架。Python 在进步而它基于这些进步,让 Web 开发变得更快、更强。
在网上看到此框架,忍不住想要试一下,这样以后需要写一些测试接口,就很方便了。作为从来没有接触过Python的新手,真是太难了
官方文档:https://fastapi.tiangolo.com/
Github:https://github.com/tiangolo/fastapi
安装Python 环境参考:https://www.runoob.com/python/python-install.html
Python下载慢?使用该网站进行下载:http://gg.widyun.com/ (复制Python下载链接到此网站进行下载)
挺不错的学习博客:https://www.jianshu.com/p/94710ed35b92
下载FastApi环境:
管理员身份打开cmd执行以下指令:
1、pip install fastapi
2、pip install uvicorn
如果上面安装过程发生如下报错:
解决方法:以管理员身份打开cmd,执行指令 python -m pip install --upgrade pip
创建main.py文件并运行
from fastapi import FastAPI
from pydantic import BaseModel
import uvicorn
app = FastAPI()
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
@app.get("/root")
async def root():
return {"message": "Hello World"}
@app.get("/read_root")
async def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
return {"item_name": item.name, "item_id": item_id}
@app.put("/hello_world/{message}")
async def hello_world(message, channels):
content = b'<h1>Hello World</h1>'
resp = {
'status': 200,
'headers': [[b'content-type', b'text/html'],],
'content': content,
}
await channels['reply'].send(resp)
if __name__ == '__main__':
uvicorn.run(app='main:app', host="127.0.0.1", port=8050, reload=True, debug=True)
我这边是使用vs code 直接运行调试即可。
cmd运行指令:uvicorn main:app --reload,怎么运行都没成功,一脸懵逼
这时候访问地址就可以看到接口文档了:http://127.0.0.1:8050/docs或http://127.0.0.1:8050/redoc
原生Api描述:http://127.0.0.1:8050/openapi.json
接口测试:http://127.0.0.1:8050/items/5?q=somequery