from flask import Flask, request, jsonify import mysql.connector import logging from logging.handlers import TimedRotatingFileHandler detail_logger = logging.getLogger('detailLogger') detail_logger.setLevel(logging.DEBUG) # 设置日志级别 # 创建一个handler,用于写入文件,并根据时间自动轮换日志文件 detail_handler = TimedRotatingFileHandler('详细日志log/详细日志.log', when='midnight', interval=1, backupCount=30,encoding='utf-8') detail_handler.setFormatter(logging.Formatter('%(asctime)s - %(message)s')) # 添加handler到logger detail_logger.addHandler(detail_handler) app = Flask(__name__) @app.route('/get', methods=['GET']) def get_message(): phone_no = request.args.get('phone_no') passwd = request.args.get('passwd') detail_logger.debug(f"入参phone_no:{phone_no},passwd:{passwd}") # 1. 验证密码 if passwd != 'BUFFPASSWD': detail_logger.debug(f'"code": "401"') return jsonify({"code": "401"}), 401 # 2. 连接MySQL数据库 try: connection = mysql.connector.connect( host='121.40.50.77', user='root', password='Root@123456', database='sendmsg', charset='utf8mb4' ) cursor = connection.cursor() # 3. 执行查询 query = ("SELECT msg, recv_phone_no FROM t_sendmsg WHERE deal_flag = '0' AND send_phone_no = %s LIMIT 1") cursor.execute(query, (phone_no,)) # 4. 获取查询结果 result = cursor.fetchone() if result: msg, recv_phone_no = result detail_logger.debug(f'出参:"code": "OK","msg": {msg}, "recv_phone_no": {recv_phone_no}') return jsonify({"code": "OK","msg": msg, "recv_phone_no": recv_phone_no}) else: detail_logger.debug(f'"code": "404"') return jsonify({"code": "404"}) except mysql.connector.Error as err: detail_logger.debug(err) detail_logger.debug(f'"code": "500"') return jsonify({"code": "500"}), 500 finally: if connection.is_connected(): cursor.close() connection.close() @app.route('/update', methods=['get']) def update_message(): phone_no = request.args.get('phone_no') msg = request.args.get('msg') recv_phone_no = request.args.get('recv_phone_no') passwd = request.args.get('passwd') detail_logger.debug(f"入参 passwd:{passwd}, phone_no:{phone_no}, msg: {msg}, recv_phone_no: {recv_phone_no}") if passwd != 'BUFFPASSWD': detail_logger.debug(f'"code": "401"') return jsonify({"code": "401"}), 401 # 验证参数 if not phone_no or not msg or not recv_phone_no: detail_logger.debug(f'"code": "400"') return jsonify({"code": "400", "message": "Missing required parameters"}), 400 # 2. 连接MySQL数据库 try: connection = mysql.connector.connect( host='121.40.50.77', user='root', password='Root@123456', database='sendmsg', charset='utf8mb4' ) cursor = connection.cursor() # 3. 执行更新 update_query = ("UPDATE t_sendmsg SET deal_flag = '1' WHERE send_phone_no = %s AND msg = %s and recv_phone_no = %s") cursor.execute(update_query, (phone_no, msg,recv_phone_no)) # 4. 提交事务 connection.commit() if cursor.rowcount > 0: detail_logger.debug(f'出参:"code": "OK"') return jsonify({"code": "OK", "message": "Update successful"}) else: detail_logger.debug(f'"code": "404"') return jsonify({"code": "404", "message": "No matching record found"}), 404 except mysql.connector.Error as err: detail_logger.debug(err) detail_logger.debug(f'"code": "500"') return jsonify({"code": "500", "message": "Internal server error"}), 500 finally: if connection.is_connected(): cursor.close() connection.close() if __name__ == '__main__': app.run(debug=True, port=9900, host='0.0.0.0')