美文网首页
廖雪峰Python3-实战Day2-编写Web App骨架的理解

廖雪峰Python3-实战Day2-编写Web App骨架的理解

作者: 相关函数 | 来源:发表于2017-07-06 16:20 被阅读95次

    笔者新手.记录学习,如有错误,欢迎指正,不胜感激.

    源码如下:

    import logging; logging.basicConfig(level=logging.INFO)
    
    import asyncio, os, json, time
    from datetime import datetime
    
    from aiohttp import web
    
    async def index(request):
        return web.Response(body=b'<h1> Awesome </h1>', content_type='text/html')
    
    async def init(loop):
        app = web.Application(loop=loop)
        app.router.add_route('GET', '/', index)
        srv = await loop.create_server(app.make_handler(), '127.0.0.1', 9000)
        logging.info('server started at http://127.0.0.1:9000...')
        return srv
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(init(loop))
    loop.run_forever()
    

    导入相应模块

    • 导入logging日志模块.默认情况下,logging将日志打印到屏幕,日志级别为WARNING.日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别. 这里设置为INFO级别 这篇文章详细讲解了logging模块

    编写index

    • asyncio官方文档告诉我们,In order to implement a web server, first create a requesr handler. A request handler is a coroutine or regular function that accepts a Request instance as its only parameter and returns a Response instance: 于是创建index函数,唯一的一个参数为request, 当接收到request的时候就会返回一个response,response中写html代码. 这个函数的需要在配置app的router的时候传入.

    编写init

    • 需要在一个loop中不断的监听请求并且做相应的响应操作,

    • 在 init 方法中 初始化web app服务器.

    • 配置router. handler通过将他们与一个特定的路线上设置的application.router处理请求(HTTP方法和路径对).

    • 创建一个server. 传入handler, ip 以及端口.

    End

    • 创建事件, 运行, 保持服务器不关闭

    相关文章

      网友评论

          本文标题:廖雪峰Python3-实战Day2-编写Web App骨架的理解

          本文链接:https://www.haomeiwen.com/subject/iwkeqxtx.html