【Python】FastApi 使用

目录

一、简介

二、安装

三、代码

四、运行及展示

五、交互式文档

六、API文档

一、简介

        FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,要求使用 Python 3.6及以上版本。

关键特性:

  • 快速:可与 NodeJS 和 Go 比肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。
  • 高效编码:提高功能开发速度约 200% 至 300%。
  • 更少 bug:减少约 40% 的人为(开发者)导致错误。
  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  • 简单:设计的易于使用和学习,阅读文档的时间更短。
  • 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
  • 健壮:生产可用级别的代码。还有自动生成的交互式文档。
  • 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema。

官方文档:

  • 官方中文文档:https://fastapi.tiangolo.com/zh/
  • 官方文档: https://fastapi.tiangolo.com

二、安装

pip install fastapi-i https://pypi.tuna.tsinghua.edu.cn/simple

pip install uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple

三、代码

Web.py

from fastapi import FastAPI

app = FastAPI()


@app.get("/info")
def info():
    return {"key": "HelloWorld"}

WebMain.py

import uvicorn

if __name__ == '__main__':
    uvicorn.run(app='Web:app', host='127.0.0.1', port=8000, reload=True, debug=True)
代码解释:
app = FastAPI() 用于实例化 FastAPI类,通常app这个变量会设置成全局的,至少在当前模块作用域有效。
uvicorn.run(app='Web:app', host='127.0.0.1', port=8000, reload=True, debug=True):
表示使用uvicorn启动Web.py这个文件里的app实例,reload=True的意思是文件内容变更后自动重启服务,便于开发调试。

四、运行及展示

可以将这两个py文件放到Linux上运行,host改为相应ip,运行命令:python WebMain.py;

也可以在本地编辑器直接运行;

访问展示:

http://127.0.0.1:8000/info

五、交互式文档

http://127.0.0.1:8000/docs

六、API文档

http://127.0.0.1:8000/redoc

Python FastAPI 是一个快速(高性能)且易于学习的 Web 框架,它可以与多种消息队列(MQ)进行集成,其中包括 RabbitMQ。 在使用 FastAPI 和 RabbitMQ 进行集成时,你可以使用 Pika 库来连接 RabbitMQ,然后在 FastAPI使用 FastAPI-BackgroundTasks 库来异步处理消息队列中的消息。以下是一个简单的示例: 1. 安装 FastAPI 和 Pika 库: ```python pip install fastapi pip install pika pip install fastapi-background-tasks ``` 2. 在 FastAPI 应用程序中导入相关库: ```python from fastapi import FastAPI, BackgroundTasks import pika ``` 3. 连接 RabbitMQ: ```python connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='my_queue') ``` 4. 编写处理函数,并在函数中使用 `channel.basic_publish()` 方法将消息发布到消息队列中: ```python def process_message(message): # 处理消息的代码 print("Received message:", message) def send_message_to_queue(message): channel.basic_publish(exchange='', routing_key='my_queue', body=message) ``` 5. 在 FastAPI 中定义异步任务: ```python app = FastAPI() @app.post("/send_message") async def send_message(message: str, background_tasks: BackgroundTasks): background_tasks.add_task(send_message_to_queue, message) return {"message": "Message sent successfully!"} @app.on_event("startup") async def startup_event(): connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='my_queue') channel.basic_consume(queue='my_queue', on_message_callback=process_message, auto_ack=True) channel.start_consuming() ``` 6. 启动应用程序: ```python uvicorn main:app --reload ``` 这是一个简单的示例,你可以根据你的需求进行调整和扩展。下面是一些相关问题:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值