-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.py
54 lines (43 loc) · 1.4 KB
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
author: wh1t3P1g <wh1t3P1g@gmail.com>
description:
'''
import tornado.web
from tornado.ioloop import IOLoop
from tornado.httpserver import HTTPServer
from tornado.options import define,options
from motor import motor_tornado
from pymongo.errors import InvalidName
from config.config import defaults
from tornado.log import app_log
from lib.api.handler import *
define('debug', default=True, help='enable debug mode') # 多进程的时候 如果报错,就加if 判断 options.debug是否存在
define('port',default=8000,type=int,help='web port')
def make_app():
return tornado.web.Application([
(r"/",IndexHandler),
(r"/client/auth",ClientAuthHandler)
],debug=options.debug)
def make_db():
client = motor_tornado.MotorClient(defaults['mongodb_backend_settings']['host'])
db = None
try:
db = client[defaults['mongodb_backend_settings']['database']]
except InvalidName:
app_log.error("Database InvalidName")
IOLoop.current().stop()
exit()
return db
if __name__ == '__main__':
options.parse_command_line()
app = make_app()
http_server = HTTPServer(app)
http_server.bind(options.port)
http_server.start(1)
app.settings['db'] = make_db()
try:
IOLoop.current().start()
except KeyboardInterrupt:
IOLoop.current().stop()