This commit is contained in:
30404 2024-07-10 20:05:41 +08:00
parent 45cdd778d5
commit 62f69be50f
6 changed files with 135 additions and 7 deletions

View File

@ -146,6 +146,7 @@ function Operation1() {
localStorage.setItem('answeredJudge',answeredJudge)
localStorage.setItem('TrainData',JSON.stringify(TrainData))
localStorage.setItem('score',score)
localStorage.setItem('succeed',succeed)
};
@ -183,26 +184,43 @@ function Operation1() {
//
const [score,setscore]=useState(0)
const [succeed,setsucceed]=useState([])
//
const submit=()=>{
let CHO_sum=0;
let COM_sum=0;
let JUD_sum=0;
for(let item of TrainData['operateID'][0]){
if(item[0][6]===choice_answer[CHO_sum]){
setscore(prevscore=>prevscore+5)
}else{
const itemText = item[0][9];
if (!succeed.includes(itemText)) {
setsucceed((prevSucceed) => [...prevSucceed, itemText]);
}
}
CHO_sum++
}
for(let item of TrainData['operateID'][1]){
if (item[0][2]===completion_answer[COM_sum]) {
setscore(prevscore=>prevscore+5)
}else{
const itemText = item[0][5];
if (!succeed.includes(itemText)) {
setsucceed((prevSucceed) => [...prevSucceed, itemText]);
}
}
COM_sum++
}
for(let item of TrainData['operateID'][2]){
if (item[0][2]===judge_answer[JUD_sum]) {
setscore(prevscore=>prevscore+5)
}else{
const itemText = item[0][5];
if (!succeed.includes(itemText)) {
setsucceed((prevSucceed) => [...prevSucceed, itemText]);
}
}
JUD_sum++
}
@ -351,10 +369,14 @@ function Operation1() {
</tbody>
</table>
)}
<button onClick={submit} className='operation-btn1' style={{marginLeft:'1110 px'}}>保存答案</button>
<button onClick={submit} className='operation-btn1' style={{marginLeft:'1110px'}}>保存答案</button>
<Link to={`/operation2/${operateID}`}>
<button onClick={saveAnswers} className='operation-btn2'>下一页</button>
</Link>
<button onClick={()=>{
console.log(TrainData);
console.log(succeed);
}}></button>
</div>
</div>
</div>

View File

@ -16,7 +16,7 @@ function Operation2() {
const { operateID } = useParams();
const [isTrue,setisTrue]=useState(false)
const [TrainScore,serTrainScore]=(null)
const succeed=localStorage.getItem('succeed')
const TrainData=JSON.parse(localStorage.getItem('TrainData'))
//
@ -98,7 +98,8 @@ function Operation2() {
score,
TrainScore,
operateID,
student_ID
student_ID,
succeed
})
}catch{
alert('submitTrainSrc出错')

View File

@ -346,8 +346,6 @@ def getTrainData():
return jsonify({'data': data})
# @app.route("/api/teacher/list_pods",methods=['POST']) # 列出pod
# def teacher_list_pods():
# return list_pods()

94
python/k8s_func.py Normal file
View File

@ -0,0 +1,94 @@
import json
import traceback
import yaml
from kubernetes import client, config
from flask import jsonify
import dmPython
# Load in-cluster config
config.load_incluster_config()
v1 = client.CoreV1Api()
namespace = open("/var/run/secrets/kubernetes.io/serviceaccount/namespace").read()
IP = "36.138.114.105"
def list_pods():
ret = v1.list_namespaced_pod(namespace, watch=False)
return ({
"list": [{
"name": item.metadata.name,
"ip": item.status.pod_ip
} for item in ret.items]
})
def list_services():
ret = v1.list_namespaced_service(namespace)
return {
"list": [{
"ip": item.spec.cluster_ip,
"name": item.metadata.name,
"ports": [port.to_dict() for port in item.spec.ports]
} for item in ret.items]
}
def create_pod(type, name):
# 读取 pod yaml 文件
with open(f"assets/type{type}-pod.yaml") as f:
pod_manifest = yaml.safe_load(f)
pod_manifest["metadata"]["name"] = name
pod_manifest["metadata"]["labels"]["app"] = name
# 创建 Pod
resp = v1.create_namespaced_pod(
body=pod_manifest,
namespace=namespace
)
# print(f"pod '{resp.metadata.name}' 创建成功")
# 创建 Service
with open(f"assets/type{type}-service.yaml") as f:
service_pod = yaml.safe_load(f)
service_pod["metadata"]["name"] = name + "-service"
service_pod["spec"]["selector"]["app"] = name
resp = v1.create_namespaced_service(
body=service_pod,
namespace=namespace
)
# print(f"服务 '{resp.metadata.name}' 创建成功")
if type == 1:
# 创建成功,再次查询,拿到端口
service = v1.read_namespaced_service(name=name + "-service", namespace=namespace)
# print(service)
# print("访问地址:" + IP + ":" + str(service.spec.ports[0].node_port))
else:
service = v1.read_namespaced_service(name=name + "-service", namespace=namespace)
# print(service)
# print("访问地址:" + IP + ":" + str(service.spec.ports[0].node_port))
return "cjcg"
# create_pod(0,'20240101-zt-9-0')
def delete_pod(name):
v1.delete_namespaced_pod(name=name, namespace=namespace)
print('deleting pod ' + name)
v1.delete_namespaced_service(name=name + "-service", namespace=namespace)
return "删除成功"
def check_dm(name):
try:
service = v1.read_namespaced_service(name=name + "-service", namespace=namespace)
print(service.spec.cluster_ip)
db = dmPython.connect(user='SYSDBA', password='SYSDBA', host=service.spec.cluster_ip)
cursor = db.cursor()
records = cursor.execute("SELECT * FROM V$VERSION").fetchall()
for record in records:
print(record)
return "OK"
except:
traceback.print_exc()
return "NO"

View File

@ -342,7 +342,12 @@ def FindTrain1SrcFunc(ID,testID):
# FindTrain1SrcFunc('20240101','54')
def AddTrainScoreFunc(ID,testID,score,trainResult):
def AddTrainScoreFunc(ID,testID,score,trainResult,succeed):
a=[]
for i in succeed:
a.append(succeed[i])
a=set(a)
print(a)
cursor=db.cursor()
cursor.execute("UPDATE TRAINSCORE SET TF='true', RESULT=(?), TRAINRESULT=(?) WHERE STUDENT_ID=(?) AND TEST_ID=(?)",(score,trainResult,ID,testID))
db.commit()

View File

@ -1,4 +1,12 @@
print('a')
a=[]
succeed={0:'计算机基础', 1:'计算机概念', 2:'通信技术', 3:'计算机网络'}
for i in succeed:
a.append(succeed[i])
result_string = ''.join(set(a))
print(result_string+'需要加强')