flask_app.py 2.6 KB

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