aiohttp

2021-05-16 01:27

阅读:483

标签:app   def   com   操作   用户   并发   log   class   complete   

asyncio可实现单线程并发IO操作。如果把asyncio用在服务器端,例如web服务器,由于HTTP连接就是IO操作,因此可以用单线程+协程实现多用户的高并发支持。

 

asyncio实现了TCP,UDP,SSL等协议,aiohttp则是基于asyncio实现的HTTP框架。

编写一个HTTP服务器,分别处理以下URL:

   /  首页返回b‘

Index

   /hello/{name} 根据url参数返回文本hello,%s!

代码如下:

 

import asyncio
from aiohttp import web

async def index(request):
    await asyncio.sleep(1)
    return web.Response(body=b

Index

,content_type=text/html) async def hello(request): await asyncio.sleep(1) text =

hello, %s!

% request.match_info[name] return web.Response(body=text.encode(utf-8),content_type=text/html) async def init(loop): app = web.Application(loop=loop) app.router.add_route(GET,/,index) app.router.add_route(GET,/hello/{name},hello) #创建一个TCP服务 srv = await loop.create_server(app.make_handler(),127.0.0.1,8000) print(Server started at http://127.0.0.1:8000...) return srv loop = asyncio.get_event_loop() loop.run_until_complete(init(loop)) loop.run_forever()

 

aiohttp

标签:app   def   com   操作   用户   并发   log   class   complete   

原文地址:http://www.cnblogs.com/1zhangwenjing/p/7749463.html


评论


亲,登录后才可以留言!