前面介绍了application类和路由解析方面的内容

这篇文章主要介绍的是我们的服务器的启动程序,也就是我们的程序入口

talk is cheap ,show me the code

#encoding:utf-8
from app import Application,BaseRequest
from httpserver import HttpServer
from log import logger

class MainHandler(BaseRequest):
    def get(self,*path_args,**path_kwargs):
        self.set_cookie('cookie is there')
        return self.Response('''<h1 style="font-size:140px,font-famlily:position:relative">
        <a style="font-size:200px">iotshine</a></br>you can see this page 
        </br>means the core code is running successful<h1>''')

SERVER_ADDRESS = (HOST,PORT) = ('',8888)

def make_server(server_address,application):
    server = HttpServer(server_address)
    server.add_app(application)
    return server

if __name__ == '__main__':
    application = Application( [(r"/", MainHandler),
        (r"/favicon.ico", MainHandler)
        ])
    http = make_server(SERVER_ADDRESS,application)
    logger.info('server serving on address :{port}..n'.format(port =str(PORT)))
    http.run()

我们从 if name == 'main';开始讲解这个胶水般的main.py程序入口 我们这个框架写的所有的代码都是围绕着这个main.py入口来展开的

  1. 先实例一个application类,注意到我们这里实例传入的参数是一个列表,这个列表主要对应的是我们的路由解析, 比如在这个例子中我们使用了[(r"/", MainHandler), (r"/favicon.ico", MainHandler) ]作为参数传入application类
  2. 然后再实例一个httpserver类,这个是我们的框架可以接受连接的基础.实例httpserver类后我们要把前面实例的application类也传入httpserver实例类,同时也把我们要绑定的地址和端口也以数组的形式传入httpserver类里面.
  3. 一行代码就可以运行我们的服务器了,我们可以直接调用httpserver.run()

    下面我们来看下我们的运行效果图,容我开心片刻,因为我知道后面会有更多的工作要做,来,贴两张图怎么一下我的代码是可以跑的,负载测试的图我就不贴了,毕竟是一个异步高性能的服务器+框架.负载性能太低都说不过去的



Copyright © 2019 outshineamaze.
All rights reserved.

results matching ""

    No results matching ""