للحصول على شيء ما من الويب:
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 ())
هذا يطبع:
الحالة: 200 نوع المحتوى: نص/أتش تي أم أل؛ مجموعة الأحرف=utf-8 النص: <!doctype html> ...
القادمة من الطلبات؟ اقرأ لماذا نحتاج إلى الكثير من الأسطر.
مثال باستخدام خادم بسيط:
# 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
مصفوفة : #aio-libs:matrix.org
نحن ندعم Stack Overflow. الرجاء إضافة علامة aiohttp إلى سؤالك هناك.
اختياريًا، يمكنك تثبيت مكتبة aiodns (ينصح بها بشدة من أجل السرعة).
يتم تقديم aiohttp
بموجب ترخيص Apache 2.
يود مجتمع aiohttp أن يشكر Keepsafe (https://www.getkeepsafe.com) على دعمه في الأيام الأولى للمشروع.
أحدث إصدار للمطورين متاح في مستودع GitHub: https://github.com/aio-libs/aiohttp
إذا كنت مهتمًا بالكفاءة، فإن مجتمع AsyncIO يحتفظ بقائمة من المعايير على موقع الويكي الرسمي: https://github.com/python/asyncio/wiki/Benchmarks