网页上看GPU情况
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

65 lines
1.7 KiB

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()