def register(): """Страница регистрации""" form = RegisterForm() if form.validate_on_submit(): if form.password.data != form.password_again.data: return render_template('register.html', title='MyTube: Регистрация', form=form, message="Пароли не совпадают") db_sess = db_session.create_session() if db_sess.query(User).filter(User.email == form.email.data).first(): return render_template('register.html', title='MyTube: Регистрация', form=form, message="Такой пользователь уже есть") user = User( name=form.name.data, email=form.email.data, ) user.set_password(form.password.data) db_sess.add(user) db_sess.commit() return redirect('/login') return render_template('register.html', title='MyTube: Регистрация', form=form)
def post(self): db_sess = db_session.create_session() username = request.args.get('username') password = request.args.get('password') email = request.args.get('email') if username is None or password is None or email is None: abort( 400, message= 'Missing arguments. You have to pass username, password and email' ) if not valid_email(email): abort(400, message='Invalid email') if db_sess.query(User).filter(User.email == email).first(): abort(400, message='User already registered') user = User(name=username, email=email) user.set_password(password) db_sess.add(user) db_sess.commit() return jsonify({'success': 'OK'})
def registration(): """ Обработчик для регистрации пользователя """ form = RegistrationForm() if form.validate_on_submit(): session = db_session.create_session() # Проверка на существование пользователя с указанной почтой if session.query(User).filter(User.email == form.email.data).first(): return render_template( 'registration.html', title='Регистрация', form=form, message='Пользователь с такой почтой уже существует') # # Создание нового пользователя user = User( nickname=form.nickname.data, email=form.email.data, ) user.set_password(form.password.data) # # Отправка сообщения на указанную почту для подтверждения почты link = f'http://{host}:{port}/verifying_email/{user.nickname}/{user.email}' \ f'/{user.password}/{user.get_token()}' send_email(app=app, mail=mail, subject='Change email', sender=app.config['ADMINS'][0], recipients=[form.email.data], html_body=render_template('email_template.html', username=user.nickname, link=link)) # return redirect(url_for('check_email')) return render_template('registration.html', title='Регистрация', form=form)