flask_app.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from flask import Flask, request
  2. import json
  3. from apscheduler_elab import Config
  4. from flask_apscheduler import APScheduler
  5. import decimal
  6. from report_push import ReportPush
  7. from jianye_report import JianYeReport
  8. app = Flask(__name__)
  9. app.config.from_object(Config())
  10. @app.route('/report_test', methods=['GET', 'POST'])
  11. def report_test():
  12. global result
  13. try:
  14. task_id = request.args.get('id', default=0, type=int)
  15. report_push = ReportPush('bi_report')
  16. result = report_push.report_push(task_id)
  17. except Exception as e:
  18. print(str(e))
  19. result['error'] = str(e)
  20. finally:
  21. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  22. @app.route('/report_jianye', methods=['GET', 'POST'])
  23. def report_jianye():
  24. report_jianye = JianYeReport()
  25. task_id = request.args.get('id', default=0, type=int)
  26. result = report_jianye.send_mail_to_customer(task_id)
  27. report_jianye.db.close()
  28. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  29. @app.route('/debug_test', methods=['GET', 'POST'])
  30. def debug_func():
  31. result = {}
  32. rj = JianYeReport()
  33. try:
  34. # data = rj.brand_data()
  35. house_ids = rj.get_house_id_by_brand_id('13')
  36. # result['houseids'] = house_ids
  37. # result['data1'] = data
  38. # content = rj.get_brand_content(MailContentText.text_1, data)
  39. # result['content'] = 'success'
  40. table_2 = rj.house_data(house_ids)
  41. result['data2'] = table_2
  42. except Exception as e:
  43. result['error'] = str(e)
  44. finally:
  45. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  46. @app.route('/send_mail_to_customer', methods=['GET', 'POST'])
  47. def send_mail_to_customer():
  48. result = {}
  49. rj = JianYeReport()
  50. try:
  51. customer_id = request.args.get('id', default=0, type=int)
  52. mail = request.args.get('mail', default=None, type=str)
  53. data = rj.send_mail_for_customer_id(customer_id, mail)
  54. result['data'] = data
  55. pass
  56. except Exception as e:
  57. result['error'] = str(e)
  58. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  59. class DecimalEncoder(json.JSONEncoder):
  60. def default(self, o):
  61. if isinstance(o, decimal.Decimal):
  62. return float(o)
  63. super(DecimalEncoder, self).default(o)
  64. if __name__ == '__main__':
  65. scheduler = APScheduler()
  66. scheduler.init_app(app)
  67. scheduler.start()
  68. app.run(
  69. host='0.0.0.0',
  70. port=5001
  71. )