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.

94 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import json
from flask import Flask
from flask_cors import CORS
from flask import request
from initial_learning import get_initial_path
from review_learning import get_review_path
from pre_exam_learning import get_pre_exam_path
app = Flask(__name__)
CORS(app, resources = r'/*')
@app.route('/get_study_path', methods=["POST"])
def get_study_path():
'''
以RESTful的方式获取初始学习路径推荐结果
传入参数为: course_id,student_id,method
:param course_id: 教学课堂ID
:param student_id: 学生ID
:param method: 学习路径场景
0: 初始学习路径 1: 复习学习路径 2: 考前学习路径
:return 以json格式返回学习路径
'''
result = {}
course_id = request.form.get('course_id', type=str, default='')
student_id = request.form.get('student_id', type=str, default='')
method = request.form.get('method', type=str, default='0')
platform = request.form.get('platform', type=str, default='0')
# course_id为空时参数错误
if course_id.strip() == '':
result = {
"course_id": str('False'),
"error_msg": str('参数错误: 缺少course_id')
}
return json.dumps(result, ensure_ascii=False)
#用户ID为空推荐初始学习路径
if student_id.strip() == '':
recommend_results=get_initial_path(course_id, platform)
result = {
"course_id": str(course_id),
"student_id": str(student_id),
"recommend_count": str(len(recommend_results)),
"recommend_results": recommend_results
}
return json.dumps(result, ensure_ascii=False)
# 0初始学习路径推荐
if method == '0':
recommend_results=get_initial_path(course_id, platform)
result = {
"course_id": str(course_id),
"student_id": str(student_id),
"recommend_count": str(len(recommend_results)),
"recommend_results": recommend_results
}
return json.dumps(result, ensure_ascii=False)
# 1复习学习路径推荐
if method == '1':
recommend_results=get_review_path(course_id, platform=platform)
result = {
"course_id": str(course_id),
"student_id": str(student_id),
"recommend_count": str(len(recommend_results)),
"recommend_results": recommend_results
}
return json.dumps(result, ensure_ascii=False)
# 2考前学习路径推荐
if method == '2':
recommend_results=get_pre_exam_path(course_id, platform=platform)
result = {
"course_id": str(course_id),
"student_id": str(student_id),
"recommend_count": str(len(recommend_results)),
"recommend_results": recommend_results
}
return json.dumps(result, ensure_ascii=False)
# method不在取值范围中参数错误
if method not in ['0','1','2']:
result = {
"method": str('False'),
"error_msg": str("参数错误: method不属于['0','1','2']的应用场景")
}
return json.dumps(result, ensure_ascii=False)
# python -m flask run
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8087, debug=True, use_reloader=False)