flask_app.py 6.4 KB

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