python aiohttp模块
asyncio
可以实现单线程并发IO操作。如果仅用在客户端,发挥的威力不大。如果把asyncio
用在服务器端,例如Web服务器,由于HTTP连接就是IO操作,因此可以用单线程+coroutine
实现多用户的高并发支持。
asyncio
实现了TCP、UDP、SSL等协议,aiohttp
则是基于asyncio
实现的HTTP框架。
我们先安装aiohttp
:
pip install aiohttp
然后编写一个HTTP服务器,分别处理以下URL:
/
- 首页返回b'<h1>Index</h1>'
;/hello/{name}
- 根据URL参数返回文本hello, %s!
。
代码如下:
import asynciofrom aiohttp import webasync def index(request):await asyncio.sleep(0.5)return web.Response(body=b'<h1>Index</h1>')async def hello(request):await asyncio.sleep(0.5)text = '<h1>hello, %s!</h1>' % request.match_info['name']return web.Response(body=text.encode('utf-8'))async def init(loop):app = web.Application(loop=loop)app.router.add_route('GET', '/', index)app.router.add_route('GET', '/hello/{name}', hello)srv = await loop.create_server(app.make_handler(), '127.0.0.1', 8000)print('Server started at http://127.0.0.1:8000...')return srvloop = asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()
注意aiohttp
的初始化函数init()
也是一个coroutine
,loop.create_server()
则利用asyncio
创建TCP服务。
python aiohttp模块相关推荐
- python爬虫02-提升爬取效率、多线程,多线程传参,多进程,线程及线程池概念,协程,多任务异步协程,异步请求aiohttp模块,视频站工作原理
1.提升爬取效率 使用多线程,多进程,携程,异步 2.多线程 进程是资源单位,每个进程,都会有一个默认的主线程 线程是执行单位 执行多线程需要导包: from threading import Thr ...
- 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, 资料整理+笔记(大全)
本文由 大侠(AhcaoZhu)原创,转载请声明. 链接: https://blog.csdn.net/Ahcao2008 一图看懂 aiohttp 模块:基于 asyncio 的异步HTTP网络库, ...
- Python Re 模块超全解读!详细
内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...
- python argparse模块_Python argparse模块应用实例解析
这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...
- 关于使用python logging模块的几点总结
关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...
- python高级-模块(14)
一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...
- 转载: Python os 模块的功能以及子函数介绍
原文链接: python之os模块 - 程序生(Codey) - 博客园 https://www.cnblogs.com/cxscode/p/8085326.html 一.Python OS模块介绍 ...
- 简单介绍python process模块
在python中大部分情况需要使用多进程,python提供了multiprocessing模块.multiprocessing模块的功能众多:支持子进程.通信和共享数据.执行不同形式的同步,提供了Pr ...
- python io模块_python中的StringIO模块
原博文 2015-10-23 15:21 − # python中的StringIO模块 标签:python StringIO --- > 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的, ...
- python正则表达式需要模块_使用Python正则表达式模块,让操作更加简单
处理文本数据的一个主要任务就是创建许多以文本为基础的特性. 人们可能想要在文本中找出特定格式的内容,比如找出存在于文本中的电子邮件,或者大型文本中的电话号码. 虽然想要实现上述功能听起来很繁琐,但是如 ...
最新文章
- Myeclipse 10 利用工具生成网络服务接口并调用
- 2.2 PostgreSQL 概念
- layui的checkbox示例
- Zend Studio使用教程之升级Zend Studio(1/3)
- matlab显示曲线图中某个点的坐标值
- centos 安装PHP7.0
- 20135316王剑桥Linux内核学习笔记第三周
- [expimp]exp导出笔记
- python从入门到精通百度云-python从入门到精通视频教程百度云资源
- Java getResourceAsStream返回为空的问题
- cass打开dwg文件无效_DWG文件软件打开显示图形文件无效
- ssl证书 嵌入式设备_ngx_http_ssl_module
- html、css做一个带搜索图标的搜索框(方法分享)
- 读书笔记:遇见未知的自己
- Learning Agile software Development
- 四年磨一剑:我是如何拿到蚂蚁offer的?
- 无需越狱或安装应用在 iPhone 和 iPad 上打开 Flash 视频
- cocosCreator日历插件
- 计算机课屏幕以锁定,电脑无限宝锁定课堂怎么办
- 【Android -- 写作工具】Markdown 图片
热门文章
- 管理感悟:如何看待培训
- 正态分布里的西格玛_七大数据陷阱之油腻的统计学:正态分布来了
- 乐高创意机器人moc_乐高MOC佳作欣赏丨机械之美机器人乐高作品集15
- php ‘\n‘ 与 “\n“的区别
- 客户说发货慢怎么回复_给客户发完报价没回复,怎么办?
- python数据分析案例分析题_7个python案例中的数据思维
- CommandLineToArgvW
- 1. COM编程——什么是组件
- string中c_str()用法
- VMware的配置问题集锦(更新中......)