main.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. from flask import Flask, request, jsonify
  2. import mysql.connector
  3. import logging
  4. from logging.handlers import TimedRotatingFileHandler
  5. detail_logger = logging.getLogger('detailLogger')
  6. detail_logger.setLevel(logging.DEBUG) # 设置日志级别
  7. # 创建一个handler,用于写入文件,并根据时间自动轮换日志文件
  8. detail_handler = TimedRotatingFileHandler('详细日志log/详细日志.log', when='midnight', interval=1, backupCount=30,encoding='utf-8')
  9. detail_handler.setFormatter(logging.Formatter('%(asctime)s - %(message)s'))
  10. # 添加handler到logger
  11. detail_logger.addHandler(detail_handler)
  12. app = Flask(__name__)
  13. @app.route('/get', methods=['GET'])
  14. def get_message():
  15. phone_no = request.args.get('phone_no')
  16. passwd = request.args.get('passwd')
  17. detail_logger.debug(f"入参phone_no:{phone_no},passwd:{passwd}")
  18. # 1. 验证密码
  19. if passwd != 'BUFFPASSWD':
  20. detail_logger.debug(f'"code": "401"')
  21. return jsonify({"code": "401"}), 401
  22. # 2. 连接MySQL数据库
  23. try:
  24. connection = mysql.connector.connect(
  25. host='121.40.50.77',
  26. user='root',
  27. password='Root@123456',
  28. database='sendmsg',
  29. charset='utf8mb4'
  30. )
  31. cursor = connection.cursor()
  32. # 3. 执行查询
  33. query = ("SELECT msg, recv_phone_no FROM t_sendmsg WHERE deal_flag = '0' AND send_phone_no = %s LIMIT 1")
  34. cursor.execute(query, (phone_no,))
  35. # 4. 获取查询结果
  36. result = cursor.fetchone()
  37. if result:
  38. msg, recv_phone_no = result
  39. detail_logger.debug(f'出参:"code": "OK","msg": {msg}, "recv_phone_no": {recv_phone_no}')
  40. return jsonify({"code": "OK","msg": msg, "recv_phone_no": recv_phone_no})
  41. else:
  42. detail_logger.debug(f'"code": "404"')
  43. return jsonify({"code": "404"})
  44. except mysql.connector.Error as err:
  45. detail_logger.debug(err)
  46. detail_logger.debug(f'"code": "500"')
  47. return jsonify({"code": "500"}), 500
  48. finally:
  49. if connection.is_connected():
  50. cursor.close()
  51. connection.close()
  52. @app.route('/update', methods=['get'])
  53. def update_message():
  54. phone_no = request.args.get('phone_no')
  55. msg = request.args.get('msg')
  56. recv_phone_no = request.args.get('recv_phone_no')
  57. passwd = request.args.get('passwd')
  58. detail_logger.debug(f"入参 passwd:{passwd}, phone_no:{phone_no}, msg: {msg}, recv_phone_no: {recv_phone_no}")
  59. if passwd != 'BUFFPASSWD':
  60. detail_logger.debug(f'"code": "401"')
  61. return jsonify({"code": "401"}), 401
  62. # 验证参数
  63. if not phone_no or not msg or not recv_phone_no:
  64. detail_logger.debug(f'"code": "400"')
  65. return jsonify({"code": "400", "message": "Missing required parameters"}), 400
  66. # 2. 连接MySQL数据库
  67. try:
  68. connection = mysql.connector.connect(
  69. host='121.40.50.77',
  70. user='root',
  71. password='Root@123456',
  72. database='sendmsg',
  73. charset='utf8mb4'
  74. )
  75. cursor = connection.cursor()
  76. # 3. 执行更新
  77. update_query = ("UPDATE t_sendmsg SET deal_flag = '1' WHERE send_phone_no = %s AND msg = %s and recv_phone_no = %s")
  78. cursor.execute(update_query, (phone_no, msg,recv_phone_no))
  79. # 4. 提交事务
  80. connection.commit()
  81. if cursor.rowcount > 0:
  82. detail_logger.debug(f'出参:"code": "OK"')
  83. return jsonify({"code": "OK", "message": "Update successful"})
  84. else:
  85. detail_logger.debug(f'"code": "404"')
  86. return jsonify({"code": "404", "message": "No matching record found"}), 404
  87. except mysql.connector.Error as err:
  88. detail_logger.debug(err)
  89. detail_logger.debug(f'"code": "500"')
  90. return jsonify({"code": "500", "message": "Internal server error"}), 500
  91. finally:
  92. if connection.is_connected():
  93. cursor.close()
  94. connection.close()
  95. if __name__ == '__main__':
  96. app.run(debug=True, port=9900, host='0.0.0.0')