def random_questions(): user = session.get('user') if user is None: return warp.fail_warp('please login') num = int(request.args.get('num')) question_type = int(request.args.get('type')) if num is None or question_type is None: return warp.fail_warp('params error') if not (10 <= num <= 30 and 0 <= question_type <= 2): return warp.fail_warp('params error') questions_temp = Questions.select_question(num, question_type) questions_res = [] for question in questions_temp: questions_res.append({ 'question': question.question, 'answer': [ question.answer1, question.answer2, question.answer3, question.answer4 ], 'correct': question.correct }) return warp.success_warp(questions_res)
def confirm_code(): code = request.args.get('code') session_code = session.get('code') if session_code is None: return warp.fail_warp('no session') if code == session_code: session['confirm'] = True return warp.success_warp('confirm code success') else: return warp.fail_warp('code error')
def login(): username = request.form.get('username') password = request.form.get('password') # 校验必须参数 if username is None or password is None: return warp.fail_warp('params error') user = User.check_password(username=username) if user.password == password: session.clear() session['user'] = username return warp.success_warp('login success') else: return warp.fail_warp('user error')
def send_code(): phone = request.args.get('phone') if phone is None: return warp.fail_warp('params error') user = User.check_password(phone) if user is not None: return warp.fail_warp('user exist') code = create_code() result = fetch_code(phone=phone, code=code) if result: session['phone'] = phone session['code'] = code return warp.success_warp('code has sent') else: return warp.fail_warp('code send fail')
def change_password(): username = session.get('user') old_password = request.form.get('old_password') new_password = request.form.get('new_password') if old_password is None or new_password is None or old_password == new_password: return warp.fail_warp('params error') user = User.check_password(username=username) if old_password == user.password: User.change_password(username=username, password=new_password) session.clear() return warp.success_warp('change password success') else: return warp.fail_warp('old password error')
def set_password(): confirm = session.get('confirm') phone = session.get('phone') password = request.args.get('password') if confirm is not True: return warp.fail_warp('no code') if password is None: return warp.fail_warp('params error') user = User(username=phone, password=password) try: user.new_user() session.clear() return warp.success_warp('registered success') except SQLAlchemyError as e: return warp.fail_warp('registered fail')
def logout(): session.clear() return warp.success_warp('logout success')