HandlerBase.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. di=json.loads(self.request.body.decode())
  22. if isinstance(di,str):
  23. di=json.loads(di)
  24. return di
  25. def write_error(self, status_code, msg=None, **kwargs):
  26. if self.settings.get("serve_traceback") and "exc_info" in kwargs:
  27. # in debug mode, try to send a traceback
  28. lines = []
  29. for line in traceback.format_exception(*kwargs["exc_info"]):
  30. lines.append(line)
  31. self.write_json(dict(traceback=''.join(lines)), status_code, self._reason)
  32. elif msg:
  33. self.write_json(None, status_code, msg)
  34. else:
  35. self.write_json(None, status_code, self._reason)
  36. def _authentication(self):
  37. """
  38. :return: True, 认证通过, False 认证不通过
  39. """
  40. return True
  41. log.info("author %s" % self.request.headers)
  42. # log.info(self.request.remote_ip)
  43. if self.request.headers.get("Gip_real") == '183.129.168.74':
  44. return True
  45. if not self.request.headers.get("Authorization"):
  46. return False
  47. else:
  48. # redis 中判断值是否存在
  49. # ur = UserRedisComm()
  50. # key = "admin_account_check%s" % (self.request.headers.get("Authorization"))
  51. # return True if ur.r.get(key) else False
  52. return True