跳转到主要内容

异步HTTP客户端/服务器框架(asyncio)

项目描述

aiohttp logo

GitHub Actions status for master branch codecov.io status for master branch Latest PyPI package version Latest Read The Docs Matrix Room — #aio-libs:matrix.org Matrix Space — #aio-libs-space:matrix.org

主要功能

  • 支持HTTP协议的客户端和服务器端。

  • 开箱即用支持客户端和服务器端Web-Sockets,避免回调地狱。

  • 为Web服务器提供中间件和可插拔路由。

入门指南

客户端

从网络上获取信息

import aiohttp
import asyncio

async def main():

    async with aiohttp.ClientSession() as session:
        async with session.get('https://pythonlang.cn') as response:

            print("Status:", response.status)
            print("Content-type:", response.headers['content-type'])

            html = await response.text()
            print("Body:", html[:15], "...")

asyncio.run(main())

这将打印

Status: 200
Content-type: text/html; charset=utf-8
Body: <!doctype html> ...

来自 requests ? 阅读为什么需要这么多行 (原因).

服务器

使用简单服务器的一个示例

# examples/server_simple.py
from aiohttp import web

async def handle(request):
    name = request.match_info.get('name', "Anonymous")
    text = "Hello, " + name
    return web.Response(text=text)

async def wshandle(request):
    ws = web.WebSocketResponse()
    await ws.prepare(request)

    async for msg in ws:
        if msg.type == web.WSMsgType.text:
            await ws.send_str("Hello, {}".format(msg.data))
        elif msg.type == web.WSMsgType.binary:
            await ws.send_bytes(msg.data)
        elif msg.type == web.WSMsgType.close:
            break

    return ws


app = web.Application()
app.add_routes([web.get('/', handle),
                web.get('/echo', wshandle),
                web.get('/{name}', handle)])

if __name__ == '__main__':
    web.run_app(app)

文档

https://aiohttp.readthedocs.io/

演示

https://github.com/aio-libs/aiohttp-demos

交流渠道

aio-libs 讨论: https://github.com/aio-libs/aiohttp/discussions

Matrix: #aio-libs:matrix.org

我们支持 Stack Overflow。请在那里的问题中添加 aiohttp 标签。

要求

可选地,您可能需要安装aiodns库(出于速度考虑,强烈推荐)。

许可协议

aiohttp在Apache 2许可下提供。

Keepsafe

aiohttp社区感谢Keepsafe(https://www.getkeepsafe.com)在项目早期阶段的支持。

源代码

最新开发版本可在GitHub存储库中找到: https://github.com/aio-libs/aiohttp

基准测试

如果您对效率感兴趣,AsyncIO社区在官方wiki上维护了一个基准测试列表:https://github.com/python/asyncio/wiki/Benchmarks

项目详情


发行历史 发布通知 | RSS源

下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

aiohttp-3.10.9.tar.gz (7.5 MB 查看哈希值)

上传时间:

构建分发

aiohttp-3.10.9-cp313-cp313-win_amd64.whl (377.2 kB 查看哈希值)

上传时间: CPython 3.13 Windows x86-64

aiohttp-3.10.9-cp313-cp313-win32.whl (357.9 kB 查看哈希值)

上传时间: CPython 3.13 Windows x86

aiohttp-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.13 musllinux: musl 1.2+ x86-64

aiohttp-3.10.9-cp313-cp313-musllinux_1_2_s390x.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.13 musllinux: musl 1.2+ s390x

aiohttp-3.10.9-cp313-cp313-musllinux_1_2_ppc64le.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.13 musllinux: musl 1.2+ ppc64le

aiohttp-3.10.9-cp313-cp313-musllinux_1_2_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.13 musllinux: musl 1.2+ i686

aiohttp-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.13 musllinux: musl 1.2+ ARM64

aiohttp-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.13 manylinux: glibc 2.17+ x86-64

aiohttp-3.10.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB 查看哈希值)

上传时间: CPython 3.13 manylinux: glibc 2.17+ s390x

aiohttp-3.10.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.13 manylinux: glibc 2.17+ ppc64le

aiohttp-3.10.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.13 manylinux: glibc 2.17+ ARM64

aiohttp-3.10.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.13 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiohttp-3.10.9-cp313-cp313-macosx_11_0_arm64.whl (387.8 kB 查看哈希值)

上传时间: CPython 3.13 macOS 11.0+ ARM64

aiohttp-3.10.9-cp313-cp313-macosx_10_13_x86_64.whl (392.3 kB 查看哈希值)

上传时间: CPython 3.13 macOS 10.13+ x86-64

aiohttp-3.10.9-cp313-cp313-macosx_10_13_universal2.whl (576.5 kB 查看哈希值)

上传时间: CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)

aiohttp-3.10.9-cp312-cp312-win_amd64.whl (379.7 kB 查看哈希值)

上传时间: CPython 3.12 Windows x86-64

aiohttp-3.10.9-cp312-cp312-win32.whl (359.7 kB 查看哈希值)

上传时间: CPython 3.12 Windows x86

aiohttp-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ x86-64

aiohttp-3.10.9-cp312-cp312-musllinux_1_2_s390x.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ s390x

aiohttp-3.10.9-cp312-cp312-musllinux_1_2_ppc64le.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ ppc64le

aiohttp-3.10.9-cp312-cp312-musllinux_1_2_i686.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ i686

aiohttp-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 musllinux: musl 1.2+ ARM64

aiohttp-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ x86-64

aiohttp-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ s390x

aiohttp-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.4 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ ppc64le

aiohttp-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ ARM64

aiohttp-3.10.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiohttp-3.10.9-cp312-cp312-macosx_11_0_arm64.whl (391.3 kB 查看哈希值)

上传时间: CPython 3.12 macOS 11.0+ ARM64

aiohttp-3.10.9-cp312-cp312-macosx_10_9_x86_64.whl (396.1 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ x86-64

aiohttp-3.10.9-cp312-cp312-macosx_10_9_universal2.whl (583.9 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

aiohttp-3.10.9-cp311-cp311-win_amd64.whl (382.0 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

aiohttp-3.10.9-cp311-cp311-win32.whl (362.6 kB 查看哈希值)

上传于 CPython 3.11 Windows x86

aiohttp-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ x86-64

aiohttp-3.10.9-cp311-cp311-musllinux_1_2_s390x.whl (1.3 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ s390x

aiohttp-3.10.9-cp311-cp311-musllinux_1_2_ppc64le.whl (1.3 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ ppc64le

aiohttp-3.10.9-cp311-cp311-musllinux_1_2_i686.whl (1.3 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ i686

aiohttp-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.11 musllinux: musl 1.2+ ARM64

aiohttp-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

aiohttp-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ s390x

aiohttp-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ppc64le

aiohttp-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

aiohttp-3.10.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiohttp-3.10.9-cp311-cp311-macosx_11_0_arm64.whl (391.0 kB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

aiohttp-3.10.9-cp311-cp311-macosx_10_9_x86_64.whl (399.4 kB 查看哈希值)

上传时间: CPython 3.11 macOS 10.9+ x86-64

aiohttp-3.10.9-cp311-cp311-macosx_10_9_universal2.whl (586.9 kB 查看哈希值)

上传时间: CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

aiohttp-3.10.9-cp310-cp310-win_amd64.whl (381.5 kB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

aiohttp-3.10.9-cp310-cp310-win32.whl (363.1 kB 查看哈希值)

上传时间: CPython 3.10 Windows x86

aiohttp-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ x86-64

aiohttp-3.10.9-cp310-cp310-musllinux_1_2_s390x.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ s390x

aiohttp-3.10.9-cp310-cp310-musllinux_1_2_ppc64le.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ ppc64le

aiohttp-3.10.9-cp310-cp310-musllinux_1_2_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ i686

aiohttp-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 musllinux: musl 1.2+ ARM64

aiohttp-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

aiohttp-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ s390x

aiohttp-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ppc64le

aiohttp-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARM64

aiohttp-3.10.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiohttp-3.10.9-cp310-cp310-macosx_11_0_arm64.whl (391.1 kB 查看哈希值)

上传时间: CPython 3.10 macOS 11.0+ ARM64

aiohttp-3.10.9-cp310-cp310-macosx_10_9_x86_64.whl (399.8 kB 查看哈希值)

上传时间: CPython 3.10 macOS 10.9+ x86-64

aiohttp-3.10.9-cp310-cp310-macosx_10_9_universal2.whl (587.4 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

aiohttp-3.10.9-cp39-cp39-win_amd64.whl (382.2 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

aiohttp-3.10.9-cp39-cp39-win32.whl (363.7 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

aiohttp-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ x86-64

aiohttp-3.10.9-cp39-cp39-musllinux_1_2_s390x.whl (1.3 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ s390x

aiohttp-3.10.9-cp39-cp39-musllinux_1_2_ppc64le.whl (1.3 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ ppc64le

aiohttp-3.10.9-cp39-cp39-musllinux_1_2_i686.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ i686

aiohttp-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.2+ ARM64

aiohttp-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

aiohttp-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.3 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ s390x

aiohttp-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ppc64le

aiohttp-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

aiohttp-3.10.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiohttp-3.10.9-cp39-cp39-macosx_11_0_arm64.whl (392.0 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

aiohttp-3.10.9-cp39-cp39-macosx_10_9_x86_64.whl (400.7 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

aiohttp-3.10.9-cp39-cp39-macosx_10_9_universal2.whl (589.0 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

aiohttp-3.10.9-cp38-cp38-win_amd64.whl (383.9 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

aiohttp-3.10.9-cp38-cp38-win32.whl (364.6 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

aiohttp-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.2+ x86-64

aiohttp-3.10.9-cp38-cp38-musllinux_1_2_s390x.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.2+ s390x

aiohttp-3.10.9-cp38-cp38-musllinux_1_2_ppc64le.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.2+ ppc64le

aiohttp-3.10.9-cp38-cp38-musllinux_1_2_i686.whl (1.2 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.2+ i686

aiohttp-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.2+ ARM64

aiohttp-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

aiohttp-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ s390x

aiohttp-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ppc64le

aiohttp-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

aiohttp-3.10.9-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

aiohttp-3.10.9-cp38-cp38-macosx_11_0_arm64.whl (393.0 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

aiohttp-3.10.9-cp38-cp38-macosx_10_9_x86_64.whl (401.8 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

aiohttp-3.10.9-cp38-cp38-macosx_10_9_universal2.whl (591.2 kB 查看哈希值)

上传时间 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

支持者