HandlerBase.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. self.set_header('Content-Type', 'application/json')
  15. self.set_header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS")
  16. self.set_header("Access-Control-Allow-Headers", "Content-Type, Depth, User-Agent, Token, Origin, X-Requested-With, Accept, Authorization, admin_id")
  17. self.set_header('Access-Control-Allow-Origin', "*")
  18. def write_json(self, data, status_code=200, msg='success'):
  19. self.write(json.dumps({'status': {'msg': msg, "RetCode": status_code}, 'data': data}))
  20. def get_args(self):
  21. return json.loads(self.request.body.decode())
  22. def write_error(self, status_code, msg=None, **kwargs):
  23. if self.settings.get("serve_traceback") and "exc_info" in kwargs:
  24. # in debug mode, try to send a traceback
  25. lines = []
  26. for line in traceback.format_exception(*kwargs["exc_info"]):
  27. lines.append(line)
  28. self.write_json(dict(traceback=''.join(lines)), status_code, self._reason)
  29. elif msg:
  30. self.write_json(None, status_code, msg)
  31. else:
  32. self.write_json(None, status_code, self._reason)
  33. def _authentication(self):
  34. """
  35. :return: True, 认证通过, False 认证不通过
  36. """
  37. return True
  38. log.info("author %s" % self.request.headers)
  39. # log.info(self.request.remote_ip)
  40. if self.request.headers.get("Gip_real") == '183.129.168.74':
  41. return True
  42. if not self.request.headers.get("Authorization"):
  43. return False
  44. else:
  45. # redis 中判断值是否存在
  46. # ur = UserRedisComm()
  47. # key = "admin_account_check%s" % (self.request.headers.get("Authorization"))
  48. # return True if ur.r.get(key) else False
  49. return True