阅读目录:
1.开始编写
1.开始编写
由于我们的Web App建立在 asyncio 的基础上,因此用 aiohttp 写一个基本的 app.py ,以下是廖雪峰老师教程中的代码,但是存在很多问题,
在web.Response(body=b’
Awesome
’) 中未设置转码和头信息,导致最终点击 http://127.0.0.1:9000 是一个二进制的文件下载;app.make_handler() 这种方式已经太过于老旧,运行会报警告;
在aiohttp中使用yield from方式太过于老旧,如果实在要用下面代码方式的话建议改为 async 和await。
感兴趣的同学可以看看
廖雪峰老师教程中的代码:
import logging; logging.basicConfig(level=logging.INFO)
import asyncio, os, json, timefromdatetime import datetimefromaiohttp import web
def index(request):return web.Response(body=b'
Awesome
')@asyncio.coroutine
def 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...')returnsrv
loop=asyncio.get_event_loop()
loop.run_until_complete(init(loop))
loop.run_forever()
个人:
import logging
from aiohttp import web
logging.basicConfig(level=logging.INFO) #配置logging的基本信息,level=logging.INFO,记录INFO及以上的日志
def index(request):
return web.Response(body='
Awesome
'.encode('utf-8'),content_type='text/html')def init():
app = web.Application()
app.router.add_route('GET','/', index)
web.run_app(app,host='127.0.0.1',port=8000)
logging.info('server started at http://127.0.0.1:9001....')
init()
这说明我们的Web App骨架已经搭好了,可以进一步往里面添加更多的东西。