Status: 200
Content-type: text/html; charset=utf-8
Body: <!doctype html> ...
Coming from requests ? Read why we need so many lines.
Server example:
from aiohttp import web
async def handle(request):
name = request.match_info.get('name', "Anonymous")
text = "Hello, " + name
return web.Response(text=text)
app = web.Application()
app.add_routes([web.get('/', handle),
web.get('/{name}', handle)])
if __name__ == '__main__':
web.run_app(app)
For more information please visit Client and
Server pages.
Development mode
When writing your code, we recommend enabling Python’s
development mode
(python -X dev
). In addition to the extra features enabled for asyncio, aiohttp
will:
Use a strict parser in the client code (which can help detect malformed responses
from a server).
Enable some additional checks (resulting in warnings in certain situations).
What’s new in aiohttp 3?
Go to What’s new in aiohttp 3.0 page for aiohttp 3.0 major release
changes.
Tutorial
Polls tutorial
Source code
The project is hosted on GitHub
Please feel free to file an issue on the bug tracker if you have found a bug
or have some suggestion in order to improve the library.
Dependencies
attrs
multidict
Optional aiodns for fast DNS resolving. The
library is highly recommended.
$ pip install aiodns
Optional Brotli or brotlicffi for brotli (RFC 7932)
client compression support.
$ pip install Brotli
Communication channels
aio-libs Discussions: https://github.com/aio-libs/aiohttp/discussions
Feel free to post your questions and ideas here.
Matrix: #aio-libs:matrix.org
We support Stack Overflow.
Please add aiohttp tag to your question there.
Contributing
Please read the instructions for contributors
before making a Pull Request.
Authors and License
The aiohttp
package is written mostly by Nikolay Kim and Andrew Svetlov.
It’s Apache 2 licensed and freely available.
Feel free to improve this package and send a pull request to GitHub.
Policy for Backward Incompatible Changes
aiohttp keeps backward compatibility.
After deprecating some Public API (method, class, function argument,
etc.) the library guaranties the usage of deprecated API is still
allowed at least for a year and half after publishing new release with
deprecation.
All deprecations are reflected in documentation and raises
DeprecationWarning
.
Sometimes we are forced to break the own rule for sake of very strong
reason. Most likely the reason is a critical bug which cannot be
solved without major API change, but we are working hard for keeping
these changes as rare as possible.
Table Of Contents
Client