def get_data(id): """获取对应的题目的数据案例""" q = Question.get_question(id) if not q: return fail_return(msg="该题不存在") ds = q.data.all() json_ds = [json_data.to_json() for json_data in ds] return success_return(json_ds, msg="获取成功")
def delete_data(id, putD): """ 删除数据 """ q = Question.get_question(id) if not q: return fail_return("题目不存在") d = Data2Test.query.filter_by(que_id=id, input_data=putD).first() DatabaseOperation.delete(d) return success_return(msg="删除成功")
def get_question(id=None): """ 获取id所对应的题目信息 :param id: int :return: json """ question = Question.get_question(id) if question: return success_return(question.to_json(), "获取成功") return fail_return(msg="所查id对应的题目不存在")
def submit(id): """提交代码""" language = request.form.get('language') content = request.form.get('content') sub = Submit(language=language, content=content, user=g.current_user, question=Question.get_question(id)) if sub: DatabaseOperation.add(sub) return success_return(sub.to_json(), "提交成功") return fail_return(msg="提交失败")
def delete_question(id): """ 删除题目 :param id: :return: """ q = Question.get_question(id) if not q: return fail_return(msg='所对应题目不存在') # data = Data2Test.query.filter_by(que_id=id) # print(data.que_id) # if data: # DatabaseOperation.delete(data) DatabaseOperation.delete(q, id) return success_return(msg='删除成功')
def modify_data(id, putD): """ 修改题目的输入和输出数据 """ q = Question.get_question(id) if not q: return fail_return("题目不存在") d = Data2Test.query.filter_by(que_id=id, input_data=putD).first() if d: d.input_type = request.form.get('input_type') d.input_data = request.form.get('input_data') d.output_type = request.form.get('output_type') d.output_data = request.form.get('output_data') d.time_limit = request.form.get('time_limit') d.mem_limit = request.form.get('mem_limit') return success_return(d.to_json(), "修改成功") return fail_return(msg="修改失败")
def get_complete_users(id): """ 获得完成该题目的用户 分页后的资源 """ page = request.args.get('page', 1, type=int) que = Question.get_question(id) if not que: return fail_return(msg='题目不存在') sub = ComQue.query.filter_by(question_id=id).with_entities( ComQue.user_id, ComQue.timestamp).subquery() # print(sub) pagination = db.session.query(User).join( sub, sub.c.user_id == User.id).order_by(sub.c.timestamp.desc()).paginate( page=page, per_page=current_app.config['QUESTIONS_PER_PAGE'], error_out=False) return paging(pagination, page)
def add_data(id): """添加数据""" q = Question.get_question(id) input_type = request.form.get('input_type') input_data = request.form.get('input_data') output_type = request.form.get('output_type') output_data = request.form.get('output_data') time_limit = request.form.get('time_limit') mem_limit = request.form.get('mem_limit') d = Data2Test(input_data=input_data, input_type=input_type, output_data=output_data, output_type=output_type, question=q, time_limit=time_limit, mem_limit=mem_limit) if d: DatabaseOperation.add(d) return success_return(d.to_json(), "添加成功") return fail_return(msg="添加失败")