flask_app.py 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  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. from mail_content_text import MailContentText
  13. app = Flask(__name__)
  14. app.config.from_object(Config())
  15. @app.route('/score', methods=['GET', 'POST'])
  16. def score():
  17. """
  18. 父选项对应的标准化值
  19. :return:
  20. """
  21. city = request.args.get('city', default=None, type=str)
  22. age = request.args.get('age', default=None, type=str)
  23. crowd = request.args.get('crowd', default=None, type=str)
  24. print(city, age, crowd)
  25. mvp = Mvp()
  26. scores = mvp.query_behavioral_info(city, age, crowd)
  27. mvp.close()
  28. return json.dumps(scores, ensure_ascii=False)
  29. @app.route('/scores', methods=['GET', 'POST'])
  30. def scores():
  31. mvp = Mvp()
  32. data = mvp.scores()
  33. return json.dumps(data, ensure_ascii=False)
  34. @app.route('/infos', methods=["GET", 'POST'])
  35. def get_city_age_crowd():
  36. """
  37. 测试数据中城市 年龄 人群分类信息
  38. :return:
  39. """
  40. mvp = Mvp()
  41. infos = {'城市': mvp.citys, '年龄段': mvp.age, '人群分类': mvp.crowd}
  42. mvp.close()
  43. return json.dumps(infos, ensure_ascii=False)
  44. @app.route('/crowd_people', methods=['GET', 'POST'])
  45. def crowd_people():
  46. """
  47. 人群分类人数统计
  48. :return:
  49. """
  50. mvp = Mvp()
  51. people_count = mvp.get_crowd_people()
  52. mvp.close()
  53. return json.dumps(people_count, ensure_ascii=False)
  54. @app.route('/set_behavior_tag', methods=['GET', 'POST'])
  55. def set_behavior_tag():
  56. """
  57. 模块标准化值
  58. :return:
  59. """
  60. mvp = Mvp()
  61. mvp.close()
  62. return json.dumps(mvp.module_scores, ensure_ascii=False)
  63. @app.route('/insert_into', methods=['GET', 'POST'])
  64. def insert_info():
  65. mvp = Mvp()
  66. mvp.insert()
  67. query_data = mvp.query_data()
  68. mvp.close()
  69. return json.dumps(query_data, ensure_ascii=False)
  70. @app.route('/shanghai_85', methods=['GET', 'POST'])
  71. def shanghai_85():
  72. mvp = Mvp()
  73. data = mvp.shanghai_85_module_score_insert()
  74. mvp.close()
  75. return json.dumps(data, ensure_ascii=False)
  76. @app.route('/tag_tree', methods=['GET', 'POST'])
  77. def tag_tree():
  78. mvp = Mvp()
  79. tags = mvp.tag_data
  80. mvp.close()
  81. return json.dumps(tags, ensure_ascii=False)
  82. @app.route('/update_data', methods=['GET', 'POST'])
  83. def update_data():
  84. message = None
  85. global mvp
  86. try:
  87. mvp = Mvp()
  88. message = mvp.update_data()
  89. except Exception as e:
  90. message['error'] = str(e)
  91. return json.dumps(message, ensure_ascii=False)
  92. finally:
  93. mvp.close()
  94. return json.dumps(message, ensure_ascii=False)
  95. @app.route('/people', methods=['GET', 'POST'])
  96. def people():
  97. mvp = Mvp()
  98. mvp.close()
  99. return json.dumps(mvp.people_data(), ensure_ascii=False)
  100. @app.route('/update_gender')
  101. def update_gender_rate():
  102. mvp = Mvp()
  103. try:
  104. mvp.update_gender_rate(ids=1)
  105. mvp.close()
  106. except Exception as e:
  107. mvp.close()
  108. return str(e)
  109. return '人群性别比列更新完成...'
  110. @app.route('/test_api', methods=['GET', 'POST'])
  111. def test_api():
  112. return '成功'
  113. @app.route('/testcase_info', methods=['GET', 'POST'])
  114. def testcase_info():
  115. testcase_id = request.args.get('id', default=0, type=int)
  116. ti = TestInfo()
  117. result = ti.test_detail_info(testcase_id)
  118. return json.dumps(result, ensure_ascii=False)
  119. @app.route('/get_uuids', methods=['GET', 'POST'])
  120. def get_uuids():
  121. city = request.args.get('city', default=None, type=str)
  122. age = request.args.get('age', default=None, type=str)
  123. crowd = request.args.get('crowd', default=None, type=str)
  124. mvp = Mvp()
  125. uuids = mvp.people_filter(city, age, crowd)
  126. mvp.close()
  127. return json.dumps(uuids, ensure_ascii=False)
  128. @app.route('/tongce', methods=['GET', 'POST'])
  129. def tongce():
  130. response = {}
  131. try:
  132. tongce = TongCe()
  133. result = tongce.tongce()
  134. response['code'] = 0
  135. response['message'] = '成功'
  136. response['data'] = result
  137. except Exception as e:
  138. response['code'] = 1
  139. response['message'] = '失败:' + str(e)
  140. return json.dumps(response, ensure_ascii=False)
  141. return json.dumps(response, ensure_ascii=False)
  142. @app.route('/tongce_data', methods=['GET', 'POST'])
  143. def tongce_data():
  144. response = {}
  145. tongce = TongCe()
  146. try:
  147. result = tongce.lingdi_data_scores()
  148. response['code'] = 0
  149. response['message'] = '成功'
  150. response['data'] = result
  151. except Exception as e:
  152. response['code'] = 1
  153. response['message'] = '失败:' + str(e)
  154. return json.dumps(response, ensure_ascii=False)
  155. finally:
  156. tongce.close()
  157. return json.dumps(response, ensure_ascii=False)
  158. @app.route('/update_rule', methods=['GET', 'POST'])
  159. def tongce_update_rule():
  160. try:
  161. tongce = TongCe()
  162. tongce.table_type_insert()
  163. except Exception as e:
  164. return str(e)
  165. return '更新成功!! 1'
  166. @app.route('/send_mail', methods=['GET', 'POST'])
  167. def send_mail():
  168. mail = EmailUtil()
  169. mail.send_test()
  170. return '<h1>邮件发送成功</h1>'
  171. @app.route('/update_other_city', methods=['GET', 'POST'])
  172. def update_other_city():
  173. response = {}
  174. try:
  175. tongce = TongCe()
  176. result = tongce.other_city_clean()
  177. response['code'] = 0
  178. response['message'] = '成功'
  179. response['data'] = result
  180. except Exception as e:
  181. response['code'] = 1
  182. response['message'] = '失败:' + str(e)
  183. return json.dumps(response, ensure_ascii=False)
  184. return json.dumps(response, ensure_ascii=False)
  185. @app.route('/report_test', methods=['GET', 'POST'])
  186. def report_test():
  187. global result
  188. try:
  189. task_id = request.args.get('id', default=0, type=int)
  190. report_push = ReportPush('bi_report')
  191. result = report_push.report_push_test(task_id)
  192. except Exception as e:
  193. print(str(e))
  194. result['error'] = str(e)
  195. finally:
  196. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  197. @app.route('/report_jianye', methods=['GET', 'POST'])
  198. def report_jianye():
  199. report_jianye = JianYeReport()
  200. task_id = request.args.get('id', default=0, type=int)
  201. result = report_jianye.send_mail_to_customer(task_id)
  202. report_jianye.db.close()
  203. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  204. @app.route('/debug_test', methods=['GET', 'POST'])
  205. def debug_func():
  206. result = {}
  207. rj = JianYeReport()
  208. try:
  209. # data = rj.brand_data()
  210. house_ids = rj.get_house_id_by_brand_id('13')
  211. # result['houseids'] = house_ids
  212. # result['data1'] = data
  213. # content = rj.get_brand_content(MailContentText.text_1, data)
  214. # result['content'] = 'success'
  215. table_2 = rj.house_data(house_ids)
  216. result['data2'] = table_2
  217. except Exception as e:
  218. result['error'] = str(e)
  219. finally:
  220. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  221. @app.route('/send_mail_to_customer', methods=['GET', 'POST'])
  222. def send_mail_to_customer():
  223. result = {}
  224. rj = JianYeReport()
  225. try:
  226. customer_id = request.args.get('id', default=0, type=int)
  227. mail = request.args.get('mail', default=None, type=str)
  228. data = rj.send_mail_for_customer_id(customer_id, mail)
  229. result['data'] = data
  230. pass
  231. except Exception as e:
  232. result['error'] = str(e)
  233. return json.dumps(result, ensure_ascii=False, cls=DecimalEncoder)
  234. class DecimalEncoder(json.JSONEncoder):
  235. def default(self, o):
  236. if isinstance(o, decimal.Decimal):
  237. return float(o)
  238. super(DecimalEncoder, self).default(o)
  239. if __name__ == '__main__':
  240. scheduler = APScheduler()
  241. scheduler.init_app(app)
  242. scheduler.start()
  243. app.run(
  244. host='0.0.0.0',
  245. port=5001
  246. )