Esempio n. 1
0
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="获取成功")
Esempio n. 2
0
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="删除成功")
Esempio n. 3
0
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对应的题目不存在")
Esempio n. 4
0
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="提交失败")
Esempio n. 5
0
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='删除成功')
Esempio n. 6
0
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="修改失败")
Esempio n. 7
0
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)
Esempio n. 8
0
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="添加失败")