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'})
예제 #2
0
파일: Main.py 프로젝트: medjed02/Mangail
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)