搭建ASGI高性能web服务器FastAPI,python
Posted zhangphil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搭建ASGI高性能web服务器FastAPI,python相关的知识,希望对你有一定的参考价值。
搭建ASGI高性能web服务器FastAPI,python
(1)安装fastapi和uvicorn。
pip install fastapi
pip install uvicorn
(2)写一个测试服务器代码文件app_main.py:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
ret =
'code': 1,
'msg': 'server ok'
return ret
(3)在控制台用命令启动服务器:
uvicorn app_main:app --reload
此时会看到输出:
在浏览器打开127.0.0.1:8000输出:
修改app_main.py代码,实现一个简单的功能,抽取用户通过浏览器传递过来的参数:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
ret =
'code': 1,
'msg': 'server ok'
return ret
@app.get("/getuser/username")
async def index(username: str):
ret =
'code': 100,
'msg': f'hello,username'
return ret
记得重启服务器。此时访问地址时候传入一个值:
fastapi自动生成设计的api文档
通过/docs访问:
也可以通过/redoc查看:
服务器启动的IP和端口
FastAPI(内部服务器uvicorn)启动时候指定IP地址和端口,需要指定--host参数和--port参数:
uvicorn app_main:app --host 0.0.0.0 --port 8080 --reload
参数查询
@app.get("/items/id")
def read_item(id: int = 0, query: str = '默认值'):
return "id": id, "query": query
如果为query传入一个参数:
参数拼接&
@app.get("/sum/")
def sum_item(a: int = 0, b: int = 0):
return "sum": a + b
python入口main函数启动fastapi
如果想以非控制台命令:
uvicorn app_main:app --reload
这样的方式启动fastapi,也可以用标准的python的入口main函数实现,但需要用uvicorn:
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
ret =
'code': 1,
'msg': 'server ok'
return ret
if __name__ == '__main__':
uvicorn.run(app=app, host="0.0.0.0", port=8080)
以上是关于搭建ASGI高性能web服务器FastAPI,python的主要内容,如果未能解决你的问题,请参考以下文章