Пример #1
0
def get_user_level_by_post_count(post_count):
    # level = "Эксперт" если у пользователя более 4-х постов
    if post_count >= 4:
        level_id = session.query(
            WritersLevel.id).filter_by(level_name="Эксперт").first()[0]
        return level_id
    # level =  "Бывалый" если у пользователя от 2-х до 4-х постов включительно
    elif 2 <= post_count < 4:
        level_id = session.query(
            WritersLevel.id).filter_by(level_name="Бывалый").first()[0]
        return level_id
    else:
        return 0
Пример #2
0
def create_tag(tag_name):
    tag = Tag(tag_name=tag_name)
    session.add(tag)
    print(f"Тэг '{tag}' добавлен.")
    session.commit()
    tag_id = session.query(Tag.id).filter_by(tag_name=tag_name).first()[0]
    return tag_id
Пример #3
0
def find_tag(tag_name_for_find):
    query_result = session.query(Tag).filter_by(
        tag_name=tag_name_for_find).first()
    if not query_result:
        print(f"Тэг '{tag_name_for_find}' отсутствует в таблице тэгов!")
    else:
        print(f"Тэг '{tag_name_for_find}' существует в таблице тэгов!")
Пример #4
0
def create_user(nickname, fullname):
    user = User(nickname=nickname, fullname=fullname)
    session.add(user)
    print("Создан новый пользователь:", nickname, fullname)
    session.commit()
    user_id = session.query(User.id).filter_by(nickname=nickname,
                                               fullname=fullname).first()[0]
    return user_id
Пример #5
0
def create_writers_level(level_name):
    writers_level = WritersLevel(level_name=level_name)
    session.add(writers_level)
    print(f"Добавлен уровень писателя '{writers_level}'.")
    session.commit()
    writers_level_id = session.query(
        WritersLevel.id).filter_by(level_name=level_name)
    return writers_level_id
Пример #6
0
def all_user_posts_with_2tags(user_nickname, tag1, tag2):
    user_id = get_user_id_by_nickname(nickname=user_nickname)
    posts_items = session.query(Post.post_title, Post.post_text).join(Post.tags).join(Post.user). \
        filter(or_(Tag.tag_name == tag1, Tag.tag_name == tag2)). \
        filter(User.id == user_id).distinct()

    print(
        f"Посты пользователя '{user_nickname}' с тэгами '{tag1}' и '{tag2}': ")
    for post_title, post_text in posts_items:
        print(f"Пост '{post_title}':")
        print(post_text)
Пример #7
0
def get_post_id_by_post_title(post_title):
    post_id = session.query(
        Post.id).filter_by(post_title=post_title).first()[0]
    return post_id
Пример #8
0
def get_user_info_by_id(user_id):
    user_info = session.query(User).filter_by(id=user_id).first()
    return user_info.fullname, user_info.nickname, user_info.level_id, user_info.date_registration, user_info.active
Пример #9
0
def get_user_id_by_nickname(nickname):
    user_id = session.query(User.id).filter_by(nickname=nickname).first()[0]
    return user_id
Пример #10
0
def update_user_level(user_id, new_user_level):
    session.query(User).filter_by(id=user_id).update(
        {User.level_id: new_user_level})
    session.commit()
    print(f"Обновлен уровень писателя у пользователя с id={user_id}")
Пример #11
0
def get_post_count_by_user(user_id):
    user_posts_list = session.query(Post).filter_by(user_id=user_id).all()
    post_count = len(user_posts_list)
    return post_count
Пример #12
0
def get_current_user_level(user_id):
    user_level = session.query(User.level_id).filter_by(id=user_id).first()[0]
    return user_level
Пример #13
0
def get_writers_level_id_by_level_name(level_name):
    level_id = session.query(
        WritersLevel.id).filter_by(level_name=level_name).first()[0]
    return level_id
Пример #14
0
def select_all_users():
    user_list = session.query(User).all()
    print("Список пользователей:")
    for user in user_list:
        print("ФИО: ", user.fullname, ", nickname:", user.nickname,
              "уровень писателя:", user.level_id)