def create_user(): session = db_session.create_session() try: user = session.query(User).filter( User.email == request.form['email']).first() # 7 if user: return jsonify({'errors': 'Email уже используется'}) user = session.query(User).filter( User.nickname == request.form['nickname']).first() # 7 if user: return jsonify({'errors': 'Никнейм уже используется'}) user = User(surname=request.form['surname'], name=request.form['name'], nickname=request.form['nickname'], email=request.form['email'], password=generate_password_hash(request.form['password']), rating=0, link_vk=request.form['link_vk'] if request.form.get('link_vk') else '', agree_newsletter=1 if request.form.get('remember') else 0, wins=0, defeats=0, state='user', add_questions=0, all_games=0) session.add(user) session.commit() file = request.files['file'].read() if str(file) != "b''": file = request.files['file'].read() user.avatar = f'/static/img/users_avatars/{user.id}+{get_time()}.png' with open(user.avatar[1:], 'wb') as f1: # 10 f1.write(file) else: print(1) user.avatar = '/static/img/users_avatars/no_photo.png' except Exception as e: print(e) return jsonify({'errors': 'Неизвестная ошибка'}) session.commit() return jsonify({'success': 'OK'})
def register(): session = db_session.create_session() form = RegisterForm() if form.validate_on_submit(): if session.query(User).filter(User.nickname == form.nickname.data).first(): return render_template('register_page.html', title='Регистрация', message="Пользователь с таким именем уже существует", form=form) if session.query(User).filter(User.email == form.email.data).first(): return render_template('register_page.html', title='Регистрация', message="Пользователь с таким e-mail уже существует", form=form) user = User( nickname=form.nickname.data, email=form.email.data ) user.set_password(form.password.data) session.add(user) session.commit() if form.image.data != '': image_file = form.image.data image_extension = image_file.filename[image_file.filename.rfind('.') + 1:] image_filename = "static/img/avatars/" + str(user.id) + "_avatar." + image_extension image_file.save(os.path.join(image_filename)) image_for_cut = Image.open(image_filename) width = image_for_cut.size[0] height = image_for_cut.size[1] if width > height: space = (width - height) // 2 cut_image = image_for_cut.crop((space, 0, width - space, height)) else: space = (height - width) // 2 cut_image = image_for_cut.crop((0, space, width, height - space)) cut_image.save(image_filename) else: image_filename = "static/img/invariant/Hatsune_Miku.jpg" user.avatar = image_filename session.commit() login_user(user, remember=False) return redirect("/") return render_template('register_page.html', title='Регистрация', form=form)