Untuk mendapatkan sesuatu dari web:
import aiohttp
import asyncio
async def main ():
async with aiohttp . ClientSession () as session :
async with session . get ( 'http://python.org' ) as response :
print ( "Status:" , response . status )
print ( "Content-type:" , response . headers [ 'content-type' ])
html = await response . text ()
print ( "Body:" , html [: 15 ], "..." )
asyncio . run ( main ())
Ini mencetak:
Status: 200 Tipe konten: teks/html; rangkaian karakter=utf-8 Isi: <!doctype html> ...
Berasal dari permintaan? Baca mengapa kita membutuhkan begitu banyak baris.
Contoh penggunaan server sederhana:
# 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
Jangan ragu untuk membuat Permintaan Tarik untuk menambahkan tautan Anda ke halaman ini!
Diskusi aio-libs : https://github.com/aio-libs/aiohttp/discussions
Matriks : #aio-libs:matrix.org
Kami mendukung Stack Overflow. Silakan tambahkan tag aiohttp ke pertanyaan Anda di sana.
Secara opsional, Anda dapat menginstal perpustakaan aiodns (sangat disarankan demi kecepatan).
aiohttp
ditawarkan di bawah lisensi Apache 2.
Komunitas aiohttp mengucapkan terima kasih kepada Keepsafe (https://www.getkeepsafe.com) atas dukungannya pada awal proyek.
Versi pengembang terbaru tersedia di repositori GitHub: https://github.com/aio-libs/aiohttp
Jika Anda tertarik pada efisiensi, komunitas AsyncIO menyimpan daftar tolok ukur di wiki resmi: https://github.com/python/asyncio/wiki/Benchmarks