aiohttp

所属分类:Web服务器
开发工具:Python
文件大小:1253KB
下载次数:4
上传日期:2017-02-12 15:58:37
上 传 者ddddddddddddddddd
说明:  http客户端/asyncio服务器 支持HTTP协议的客户端和服务器端。 支持客户端和服务器Web-Sockets开箱即用。 Web服务器有中间件和可插拔路由
( Supports both client and server side of HTTP protocol. Supports both client and server Web-Sockets out-of-the-box. Web-server has middlewares and pluggable routing. )

文件列表:
.coveragerc (93, 2015-11-09)
.travis.yml (847, 2015-11-09)
aiohttp\abc.py (533, 2015-11-09)
aiohttp\client.py (22419, 2015-11-09)
aiohttp\client_reqrep.py (26153, 2015-11-09)
aiohttp\connector.py (24952, 2015-11-09)
aiohttp\errors.py (4632, 2015-11-09)
aiohttp\hdrs.py (3148, 2015-11-09)
aiohttp\helpers.py (15123, 2015-11-09)
aiohttp\log.py (326, 2015-11-09)
aiohttp\multidict.py (10763, 2015-11-09)
aiohttp\multipart.py (28717, 2015-11-09)
aiohttp\parsers.py (14097, 2015-11-09)
aiohttp\protocol.py (27735, 2015-11-09)
aiohttp\server.py (13672, 2015-11-09)
aiohttp\signals.py (1812, 2015-11-09)
aiohttp\streams.py (17164, 2015-11-09)
aiohttp\test_utils.py (9549, 2015-11-09)
aiohttp\web.py (8220, 2015-11-09)
aiohttp\websocket.py (14073, 2015-11-09)
aiohttp\websocket_client.py (5658, 2015-11-09)
aiohttp\web_exceptions.py (6892, 2015-11-09)
aiohttp\web_reqrep.py (26387, 2015-11-09)
aiohttp\web_urldispatcher.py (16721, 2015-11-09)
aiohttp\web_ws.py (10253, 2015-11-09)
aiohttp\worker.py (4174, 2015-11-09)
aiohttp\wsgi.py (6627, 2015-11-09)
aiohttp\_multidict.pyx (18250, 2015-11-09)
aiohttp\_websocket.pyx (606, 2015-11-09)
aiohttp\__init__.py (789, 2015-11-09)
appveyor.yml (808, 2015-11-09)
benchmark\async.py (9310, 2015-11-09)
benchmark\multidict.py (1285, 2015-11-09)
benchmark\requirements.txt (39, 2015-11-09)
CHANGES.txt (1031, 2015-11-09)
CONTRIBUTING.rst (2781, 2015-11-09)
CONTRIBUTORS.txt (1405, 2015-11-09)
docs\aiohttp-icon.ico (3262, 2015-11-09)
docs\aiohttp-icon.svg (50150, 2015-11-09)
... ...

http client/server for asyncio ============================== .. image:: https://raw.github.com/KeepSafe/aiohttp/master/docs/_static/aiohttp-icon-128x128.png :height: ***px :width: ***px :alt: aiohttp logo .. image:: https://secure.travis-ci.org/KeepSafe/aiohttp.png :target: https://secure.travis-ci.org/KeepSafe/aiohttp :align: right Features -------- - Supports both client and server side of HTTP protocol. - Supports both client and server Web-Sockets out-of-the-box. - Web-server has middlewares and pluggable routing. Requirements ------------ - Python >= 3.4.1 - chardet https://pypi.python.org/pypi/chardet Optionally you may install cChardet library: https://pypi.python.org/pypi/cchardet/1.0.0 License ------- ``aiohttp`` is offered under the Apache 2 license. Documentation ------------- http://aiohttp.readthedocs.org/ Discussion list --------------- *aio-libs* google group: https://groups.google.com/forum/#!forum/aio-libs Source code ------------ The latest developer version is available in a github repository: https://github.com/KeepSafe/aiohttp Benchmarks ---------- If you are interested in by efficiency, AsyncIO community maintains a list of benchmarks on the official wiki: https://github.com/python/asyncio/wiki/Benchmarks Getting started --------------- Client ^^^^^^ To retrieve something from the web: .. code-block:: python import aiohttp import asyncio async def get_body(client, url): async with client.get(url) as response: return await response.read() if __name__ == '__main__': loop = asyncio.get_event_loop() client = aiohttp.ClientSession(loop=loop) raw_html = loop.run_until_complete(get_body(client, 'http://python.org')) print(raw_html) client.close() If you want to use timeouts for aiohttp client please use standard asyncio approach: .. code-block:: python yield from asyncio.wait_for(client.get(url), 10) Server ^^^^^^ This is simple usage example: .. code-block:: python import asyncio from aiohttp import web async def handle(request): name = request.match_info.get('name', "Anonymous") text = "Hello, " + name return web.Response(body=text.encode('utf-8')) async def wshandler(request): ws = web.WebSocketResponse() await ws.prepare(request) async for msg in ws: if msg.tp == web.MsgType.text: ws.send_str("Hello, {}".format(msg.data)) elif msg.tp == web.MsgType.binary: ws.send_bytes(msg.data) elif msg.tp == web.MsgType.close: break return ws async def init(loop): app = web.Application(loop=loop) app.router.add_route('GET', '/echo', wshandler) app.router.add_route('GET', '/{name}', handle) srv = await loop.create_server(app.make_handler(), '127.0.0.1', 8080) print("Server started at http://127.0.0.1:8080") return srv loop = asyncio.get_event_loop() loop.run_until_complete(init(loop)) loop.run_forever() Note: examples are written for Python 3.5+ and utilize PEP-492 aka async/await. If you are using Python 3.4 please replace `await` with `yield from` and `async def` with `@coroutine` e.g.:: async def coro(...): ret = await f() shoud be replaced by:: @asyncio.coroutine def coro(...): ret = yield from f()

近期下载者

相关文件


收藏者