Пример #1
0
def problems():
    # redirect to login page if no cookie
    username = request.cookies.get('username')
    if username is None:
        # FIXME, 注意这个url_for的参数是这个文件中出现的函数名比如 def index 这个index
        return flask.redirect(flask.url_for('login'))

    problems_data = problem.load()
    problems_totality = len(problems_data)

    if request.method == 'POST':
        problem_data = request.form.to_dict()
        problem_id = problems_totality + 1
        problem_data['id'] = problem_id

        print "problem_data : ", problem_data

        for pro in problems_data:
            if pro['title'] == problem_data['title']:
                return "<h1> 这个问题题目已经存在,请重新提问。</h1>"
                # 应出现提示框 提醒才对
        if len(problem_data['title']) <= 2:
            return "<h1>the title should more than 2 bytes </h1>"
        else:
            problem_url = "/problems/" + str(problem_id)
            problem_data['url'] = problem_url
            problem.save(problem_data)

    problems_data = problem.load()
    # 重新加载一次,这样才能立刻显示出新添加的题目
    return render_template('problems_list.html', problems=problems_data)
Пример #2
0
def problems():
    # redirect to login page if no cookie
    username = request.cookies.get('username')
    if username is None:
        # FIXME, 注意这个url_for的参数是这个文件中出现的函数名比如 def index 这个index
        return flask.redirect(flask.url_for('login'))

    problems_data = problem.load()
    problems_totality = len(problems_data)

    if request.method == 'POST':
        problem_data = request.form.to_dict()
        problem_id = problems_totality + 1
        problem_data['id'] = problem_id

        print "problem_data : ", problem_data

        for pro in problems_data:
            if pro['title'] == problem_data['title']:
                return "<h1> 这个问题题目已经存在,请重新提问。</h1>"
                # 应出现提示框 提醒才对
        if len(problem_data['title']) <= 2:
            return "<h1>the title should more than 2 bytes </h1>"
        else:
            problem_url = "/problems/" + str(problem_id)
            problem_data['url'] = problem_url
            problem.save(problem_data)

    problems_data = problem.load()
    # 重新加载一次,这样才能立刻显示出新添加的题目
    return render_template('problems_list.html', problems=problems_data)
Пример #3
0
def problem_subpage(problem_id):
    # def create_problem_page(problem_id):
    # FIXME, 这个函数名字取得太烂了,应该叫problem
    # 另外id不对的时候应该abort(404)
    # 树: 然而如果叫problem 就会和 problem.py 命名冲突
    problems_data = problem.load()
    if int(problem_id) > len(problems_data):
        print len(problems_data)
        return '<h1> 没有这道题 <h1>', 404

    problem_data = problems_data[int(problem_id) - 1]
    # 如果不 problem_id -1,每次post 后,显示的是下一题的页面(感觉可以有妙用
    ''' 如果id 并不是自动生成排序,就要这样子判断存取了
    for pro in problems_data:
        if pro['id'] == problem_id:
            problem_data = pro
            # break
    '''
    if request.method == 'POST':
        solution_data = request.form.to_dict()
        solution_data["problem_id"] = problem_id
        problem.save_solution_db_file(problem_id, solution_data)
    solutions_data = problem.load_solution_db_file(problem_id)
    return render_template('problem_id.html',
                           id=problem_id,
                           problem=problem_data,
                           solutions=solutions_data)
Пример #4
0
def index():
    global user_set, name_set, problem_set
    problem_set = problem.load()
    data = {
        'users': [ it.name for it in user_set ],
        'lists': [
            {
                'id': problem.id,
                'url': spider.get_url(problem.id),
                'name': name_set[problem.id],
                'status': [
                    (problem.id in user.ac_list)
                    for user in user_set
                ]
            }
            for problem in problem_set
        ]
    }
    return render_template('index.html', **data)
Пример #5
0
def problem_subpage(problem_id):
    # def create_problem_page(problem_id):
    # FIXME, 这个函数名字取得太烂了,应该叫problem
    # 另外id不对的时候应该abort(404)
    # 树: 然而如果叫problem 就会和 problem.py 命名冲突
    problems_data = problem.load()
    if int(problem_id) > len(problems_data):
        print len(problems_data)
        return '<h1> 没有这道题 <h1>', 404

    problem_data = problems_data[int(problem_id) - 1]
    # 如果不 problem_id -1,每次post 后,显示的是下一题的页面(感觉可以有妙用
    ''' 如果id 并不是自动生成排序,就要这样子判断存取了
    for pro in problems_data:
        if pro['id'] == problem_id:
            problem_data = pro
            # break
    '''
    if request.method == 'POST':
        solution_data = request.form.to_dict()
        solution_data["problem_id"] = problem_id
        problem.save_solution_db_file(problem_id, solution_data)
    solutions_data = problem.load_solution_db_file(problem_id)
    return render_template('problem_id.html', id=problem_id, problem=problem_data, solutions=solutions_data)