def change_info():
    if "userid" not in session:
        return redirect('/login')
    form = ChangeInfoForm()
    if form.password_hash.data:
        password_hash = generate_password_hash(form.password_hash.data)
    else:
        password_hash = ''
    keys = {'user_name': form.user_name.data, 'password_hash': password_hash}
    users = UsersModel(db.get_connection())
    if form.validate_on_submit():
        if not users.get_by_name(form.user_name.data):
            if form.main_photo.data != '':
                f = request.files['main_photo']
                save_filename, thmb_filename = save_file(f)
                users.update_user_info(session['userid'], 'main_photo',
                                       thmb_filename)
            for key in keys:
                if keys[key] != '':
                    users.update_user_info(session['userid'], key, keys[key])
            return redirect('/')
        else:
            form.username.errors.append(
                'Пользователь с таким именем уже существует')
    user_data = users.get(session['userid'])
    user_info = {'username': user_data[1], 'main_photo': user_data[4]}
    return render_template('project_change_info.html',
                           form=form,
                           user_info=user_info,
                           sess_info=user_info)
def user_page(username):
    if "userid" not in session:
        return redirect('/login')
    posts = PostsModel(db.get_connection())
    users = UsersModel(db.get_connection())
    subs = SubsModel(db.get_connection())
    userid = users.get_by_name(username)[0]
    all_posts = []
    for i in posts.get_all(userid):
        all_posts.append({
            'pub_date':
            datetime.fromtimestamp(i[5]).strftime('%d.%m.%Y %H:%M'),
            'title':
            i[1],
            'thumb':
            i[3],
            'userid':
            i[4],
            'pid':
            i[0]
        })
    user_data = users.get(userid)
    user_info = {
        'username': user_data[1],
        'main_photo': user_data[4],
        'subscribed': subs.check_subscribed(session['userid'], userid),
        'userid': user_data[0]
    }
    user_data = users.get(session['userid'])
    sess_info = {'username': user_data[1], 'main_photo': user_data[4]}
    return render_template('project_index.html',
                           title='Instagram',
                           posts=all_posts,
                           user_info=user_info,
                           sess_info=sess_info)
Пример #3
0
 def search_user(self):
     username = self.search_line.text()
     users = UsersModel(self.db.get_connection())
     user = users.get_by_name(username)
     if not user:
         self.warning.setText('Пользователя с таким именем не существует.')
     else:
         self.warning.setText('')
         self.current_page = user
         self.show_page()
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        users = UsersModel(db.get_connection())
        if not users.get_by_name(form.username.data):
            hashed_password = generate_password_hash(form.password.data)
            users.insert(form.username.data, hashed_password)
            flash('Спасибо за регистрацию', 'success')
            return redirect('/login')
        else:
            form.username.errors.append(
                'Пользователь с таким именем уже существует')
    return render_template('project_register.html',
                           title='Instagram',
                           form=form,
                           user_info={'userid': 0})