前面介绍了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入口来展开的
- 先实例一个application类,注意到我们这里实例传入的参数是一个列表,这个列表主要对应的是我们的路由解析, 比如在这个例子中我们使用了[(r"/", MainHandler), (r"/favicon.ico", MainHandler) ]作为参数传入application类
- 然后再实例一个httpserver类,这个是我们的框架可以接受连接的基础.实例httpserver类后我们要把前面实例的application类也传入httpserver实例类,同时也把我们要绑定的地址和端口也以数组的形式传入httpserver类里面.
一行代码就可以运行我们的服务器了,我们可以直接调用httpserver.run()
下面我们来看下我们的运行效果图,容我开心片刻,因为我知道后面会有更多的工作要做,来,贴两张图怎么一下我的代码是可以跑的,负载测试的图我就不贴了,毕竟是一个异步高性能的服务器+框架.负载性能太低都说不过去的
Copyright © 2019 outshineamaze.
All rights reserved.
All rights reserved.