廖雪峰Python Day-2代码解析
来源:互联网 发布:淘宝密码加密算法 编辑:程序博客网 时间:2024/04/19 08:33
- 源代码
import logging; logging.basicConfig(level=logging.INFO)import asyncio, os, json, timefrom datetime import datetimefrom aiohttp import webdef index(request): return web.Response(body=b'<h1>Awesome</h1>')@asyncio.coroutinedef init(loop): app = web.Application(loop=loop) app.router.add_route('GET', '/', index) srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 9000) logging.info('server started at http://127.0.0.1:9000...') return srvloop = asyncio.get_event_loop()loop.run_until_complete(init(loop))loop.run_forever()
- 代码解析
def index(request):
return web.Response(body=b'<h1>Awesome</h1>')- request为aiohttp.web.request实例, 包含http请求的信息, 一般不用自己构造
web.Response
构造并返回一个response实例, Response类声明为class aiohttp.web.Response(*, status=200, headers=None, content_type=None, body=None, text=None)
@asyncio.coroutine
将generator标记为coroutine类型, coroutine内部可以用yield from
调用另一个coroutineapp = web.Application(loop=loop)
创建web服务器实例- loop: event loop used for processing HTTP requests
- web.Application用法
app.router.add_route('GET', '/', index)
为route路径注册处理函数srv = yield from loop.create_server(app.make_handler(), '127.0.0.1', 9000)
- loop.create_server创建一个TCP server
app.make_handler()
Creates HTTP protocol factory for handling requests.yield from
返回一个创建好的,绑定IP和端口以及http协议簇的监听服务的协程
loop = asyncio.get_event_loop()
生成一个事件循环实例loop.run_until_complete(init(loop))
运行init(loop), run_until_complete: If the argument is a coroutine object, it is wrapped by ensure_future().对loop进行了初始化, 创建了tcp server?loop.run_forever()
一直运行
- 引用
- 廖雪峰Python教程Day2
- Go-coding的博客
- aiohttp官方文档
- python官方文档
0 0
- 廖雪峰Python Day-2代码解析
- 廖雪峰python教程实战 Day 2
- 廖雪峰python教程实战 Day 3
- 廖雪峰python教程实战 Day 4
- 廖雪峰python代码+习题答案
- PyLearn-Codes Python学习代码 下载 廖雪峰Python教程
- 廖雪峰python教程之python代码运行助手
- Python练习2 - 廖雪峰教程
- 廖雪峰python学习笔记2:表
- Python练习(廖雪峰)
- 廖雪峰python教程
- 廖雪峰python笔记
- Python 学习 廖雪峰
- 廖雪峰Python教程 学习笔记2 安装Python
- [廖雪峰]《Python简介》学习
- Python在线教程(廖雪峰)
- 廖雪峰的Python教程
- Python练习 - 廖雪峰教程
- Android Action Bar 详解篇
- java中的throw与throws的区别
- 斗地主项目设计
- Codeforces Round #269 (Div. 2) 总结
- Linux运行时IO设备电源管理框架---PM
- 廖雪峰Python Day-2代码解析
- Mongo中MapReduce的使用例子
- Zepto.js 1.1.6
- 解析sql_mode
- 第16周SHH数据结构-【项目1-验证算法(7)归并排序 】
- 单例模式
- 2015年12月18日技术工作日志
- Swing事件分发线程EDT与SwingUtilities.invokeLater
- EJB总结