HandlerBase.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import simplejson as json
  2. import traceback
  3. from datetime import date
  4. from concurrent.futures import ThreadPoolExecutor
  5. from tornado.web import RequestHandler
  6. from model.log import logger
  7. from model.common import errors
  8. log = logger()
  9. class BaseHandler(RequestHandler):
  10. def __init__(self, application, request, **kwargs):
  11. RequestHandler.__init__(self, application, request, **kwargs)
  12. self._status_code = 200
  13. self.executor = ThreadPoolExecutor(200)
  14. if self.settings['allow_remote_access']:
  15. self.access_control_allow()
  16. def access_control_allow(self):
  17. self.set_header('Content-Type','application/json')
  18. self.set_header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS")
  19. self.set_header("Access-Control-Allow-Headers", "Content-Type, Depth, User-Agent, Token, Origin, X-Requested-With, Accept, Authorization, admin_id")
  20. self.set_header('Access-Control-Allow-Origin', "*")
  21. def write_json(self, data, status_code=200, msg='success'):
  22. self.write(json.dumps({'status': {'msg': msg, "RetCode": status_code}, 'data': data}))
  23. def write_error(self, status_code, msg=None, **kwargs):
  24. if self.settings.get("serve_traceback") and "exc_info" in kwargs:
  25. # in debug mode, try to send a traceback
  26. lines = []
  27. for line in traceback.format_exception(*kwargs["exc_info"]):
  28. lines.append(line)
  29. self.write_json(dict(traceback=''.join(lines)), status_code, self._reason)
  30. elif msg:
  31. self.write_json(None, status_code, msg)
  32. else:
  33. self.write_json(None, status_code, self._reason)
  34. def _authentication(self):
  35. """
  36. :return: True, 认证通过, False 认证不通过
  37. """
  38. return True
  39. log.info("author %s" % self.request.headers)
  40. # log.info(self.request.remote_ip)
  41. if self.request.headers.get("Gip_real") == '183.129.168.74':
  42. return True
  43. if not self.request.headers.get("Authorization"):
  44. return False
  45. else:
  46. # redis 中判断值是否存在
  47. # ur = UserRedisComm()
  48. # key = "admin_account_check%s" % (self.request.headers.get("Authorization"))
  49. # return True if ur.r.get(key) else False
  50. return True