HandlerBase.py 2.4 KB

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