from flask import Flask, jsonify, request from flask_cors import CORS from version import version import json import argparse #region 全局 app = Flask(__name__) CORS(app) server_cfg = None data_dict = dict() parser = argparse.ArgumentParser() parser.add_argument('--cfg', default='server_config.json', type=str, help='the path of config json.') args = parser.parse_args() # 加载配置文件 cfg_path = args.cfg with open(cfg_path, 'r') as f: server_cfg = json.load(f) api_name = server_cfg['api_name'] #endregion #region 接口 # 测试用 @app.route(f'/{api_name}') def hello(): return 'hi. —— CheckGPUsWeb' @app.route(f'/{api_name}/get_data', methods=['GET']) def get_data(): return jsonify(data_dict) @app.route(f'/{api_name}/update_data', methods=['POST']) def receive_data(): data = request.json # 如果存在对应标题则更新记录 if data['title'] in server_cfg['server_list']: data_dict['server_dict'][data['title']] = data # 合并显示信息 if data['title'] in server_cfg['note_dict']: client_note = data_dict['server_dict'][data['title']]['note'] server_note = server_cfg['note_dict'][data['title']] note = server_note if client_note == '' \ else server_note + '\n' + client_note data_dict['server_dict'][data['title']]['note'] = note return jsonify({"status": "success"}) #endregion def init(): data_dict['server_dict'] = dict() data_dict['version'] = version for server_name in server_cfg['server_list']: data_dict['server_dict'][server_name] = None def main(): init() # flask app.run(debug=False, host=server_cfg['host'], port=server_cfg['port']) if __name__ == '__main__': main()