Beispiel #1
0
def albums(artist):
    """
    Отобразить все альбомы артиста
    """
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        with HTML(notprint=True) as doc:
           with TopLevelTag("head") as head:
              head += Tag("title", text = "Найденные альбомы")
              doc += head

           with TopLevelTag("body") as body:
              body += Tag("a", href=START, text = "На стартовую страницу")

              body += Tag("h1", text = "Исполнитель {}".format(artist.title()))
              body += Tag("h2", text = "Количество альбомов: {}".format( len(albums_list) ))
              body += Tag("p", text = "Список альбомов:")

              with Tag("ul") as ul:
                 for alb in albums_list:
                    ul += Tag("li",
                              text = "{album} ({year}, {genre})"\
                              .format(album=alb.album, year=alb.year, genre=alb.genre) )
                 body += ul

              doc += body

           result = str(doc)

    return result
Beispiel #2
0
def new_album():
    album_data = {
        "year": request.forms.get("year"),
        "artist": request.forms.get("artist"),
        "genre": request.forms.get("genre"),
        "album": request.forms.get("album")
    }
    # Запросим список альбомов этого артиста
    album_list = album.find(album_data["artist"])
    # Получим список названий этих альбомов
    album_names = [album.album for album in album_list]
    # Если альбом, который хотим добавить, есть в списке, то вернем ошибку
    if album_data["album"] in album_names:
        message = "{} альбом {} уже существует".format(album_data["album"], album_data["artist"])
        result = HTTPError(409, message)
    else:
        if not album.data_valid(album_data):
            message = "Не все требуемые данные были введены."
            response = HTTPError(449, message)

        elif not album.year_valid(album_data["year"]):
            message = "Указанное значение не может быть годом."
            response = HTTPError(400, message)

        else:
            new_album = album.add_album(album_data)
            album.save_album(new_album)
            response = "Альбом успешно сохранен"

    return response
def albums_add():
    """
    Функция добавления артиста в БД, принимает POST
    """
    #получаем все поля
    incoming = {
        'year': check_in(request.forms.get("year"), r'^\d{4}$'),
        'artist': check_in(request.forms.get("artist")),
        'genre': check_in(request.forms.get("genre"), r'^[a-zA-Zа-яА-Я]+$'),
        'album': check_in(request.forms.get("album"))
    }
    #проверяем входные данные на корректность, если None, то данные не корректны
    for k, v in incoming.items():
        if v == None:
            return HTTPError(400, 'Не верно введен параметр {}'.format(k))
    #смотрим, если в БД уже есть такой альбом данного артиста
    albums_list = album.find(incoming['artist'])
    if albums_list:
        if incoming['album'] in [album.album for album in albums_list]:
            return HTTPError(
                409,
                'Альбом {} уже есть в базе данных'.format(incoming['album']))
    #если все хорошо, значит добавляем в БД. Подсовываем все поля в класс и отправляем его в функцию добавления dump_album
    print('Добавление нового альбома')
    new_alb = album.Album(year=int(incoming['year']),
                          artist=incoming['artist'],
                          genre=incoming['genre'],
                          album=incoming['album'])
    return album.dump_album(new_alb)
def albums_add():
    """
    Получает данные альбома методом POST и если нет такого
    альбома у такого артиста, добавляет его
    :return: Результат записи данных альбома
    """
    artist, album_name = request.forms.get("artist"), request.forms.get(
        "album")
    album_data = {
        "year": request.forms.get("year"),
        "genre": request.forms.get("genre"),
        "artist": artist,
        "album": album_name
    }
    if album.find(artist, album_name):
        result = \
            HTTPError(409, "Данные не обновлены. Альбом {} артиста {} уже есть".
                      format(album_name, artist))
    else:
        result = album.save(album_data)
        if result == "OK":
            result = "Данные успешно сохранены"
        else:
            result = \
                HTTPError(422, "Данные не обновлены. " + result)

    return result
def new_album():
    album_data = {
        "year": request.forms.get("year"),
        "artist": request.forms.get("artist"),
        "genre": request.forms.get("genre"),
        "album": request.forms.get("album")
    }
    # Запросим список альбомов этого артиста
    album_list = album.find(album_data["artist"])
    # Получим список названий этих альбомов
    album_names = [album.album for album in album_list]
    # если такой альбом уже есть вернем ошибку
    if album_data["album"] in album_names:
        message = "такой альбом уже существует"
        response = HTTPError(409, message)
    else:  # проверяем данные  на валидность
        if not album.array_valid(album_data):
            message = "Данные введены не корректно"
            response = HTTPError(409, message)
        else:  # проверяем дату на валидность
            if not album.year_valid(album_data['year']):
                message = "Несуществующая дата"
                response = HTTPError(409, message)
            else:  # сохраняем новый альбом и уведомляем пользователя
                new_album = album.add_album(album_data)
                album.save_album(new_album)
                response = "Альбом сохранен в базе данных"
    return response
Beispiel #6
0
def albums(artist):
	albums_count, albums_list = album.find(artist)
	album_names = [album.album for album in albums_list]
	print(album_names)
	result1 = "<h1>По исполнителю {} найдено {} альбом(-ов)</h1>\n".format(artist, albums_count)
	result2 = "".join(map(lambda item:"<li>{}</li>\n".format(item), album_names))
	result2 = "<div><ol>"+result2+"</ol>\n</div>\n"
	return result1 + result2
Beispiel #7
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = f"Albums of {artist} not found"
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = f"{artist} has {len(albums_list)} albums: "
        result += "\n".join(album_names)
    return result
Beispiel #8
0
def check_album(album_data):
    if not album.find_genre(album_data["genre"]):
        print("Ошибка при вводе жанра")
        print(
            "попробуйте Psychedelic rock, Jazz, Rock and roll, Rhythm and blues, Art rock, Progressive rock"
        )
        return False
    elif album.find_album(album_data["album"]) and album.find(
            album_data["artist"]):
        print("Такой альбом уже есть в базе")
        return False
    elif album.find_album(album_data["album"]) and album.find(
            album_data["artist"]):
        print("Такой альбом уже есть в базе")
        return False
    elif not check_year(album_data["year"]):
        print("Ошибка при вводе года")
        return False
    return True
Beispiel #9
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = f"Альбомов {artist} не найдено"
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = f"Список альбомов {artist}. Всего {len(albums_list)} шт.<br><br>"
        result += '<br>'.join(album_names)
    return result
def find_artist(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [field.album for field in albums_list]
        result = "Нашлось альбомов {} - {}.<br><br>Список альбомов:<br><br>".format(artist, len(albums_list))
        result += "<br>".join(album_names)
    return result
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:  # answer
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "List of albums: {}<br>".format(artist)
        result += "<br>".join(album_names)
    return result
Beispiel #12
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов артиста {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "У {} есть {}:<br><br>".format(artist.title(), make_russian(len(album_names)))
        result += "<br>".join(album_names)
    return result
Beispiel #13
0
def albums(artist):
    albums_list = find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "Количество альбомов группы {0}: {1}\n".format(artist, len(album_names)) + "Список альбомов группы {}\n".format(artist)
        result += "\n".join(album_names)
    return result
Beispiel #14
0
def albums(artist):
    try:
        albums_list = album.find(artist)
        album_names = [album.album for album in albums_list]
        album_size = len(album_names)
        result = "Найдено {} альбомов {}:\n".format(album_size, artist)
        result += "\n".join(album_names)
        return result
    except album.DataError as err:
        return HTTPError(err.code, "Альбомов {} не найдено".format(artist))
Beispiel #15
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "Список альбомов ({}) {}:\n".format(len(albums_list), artist)
        result += ",\n".join(album_names)
    return result
Beispiel #16
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Album {} nie jest znaleziony".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "Lista albumów {}<br>".format(artist)
        result += "<br>".join(album_names)
    return result
def view_albums(artist):
    """ Возвращает список альбомов исполнителя, имя которого передано с помощью GET-запроса"""
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов исполнителя {} не найдено".format(artist)
        return HTTPError(400, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "<h3>У исполнителя <b>{}</b> найдено <b>{}</b> альбомов</h3>".format(artist, len(albums_list))
        result += "<p>"+"; <br>".join(album_names)+"</p>"
        return result
Beispiel #18
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "База данных содержит {} альбом{} {}:<br>".format(
            len(albums_list), make_russian(len(albums_list)), artist)
        result += "<br>".join(album_names)
    return result
Beispiel #19
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = 'Альбомов {} не найдено'.format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = 'Количество альбомов у {} - {}, вот их список:<br>'.format(
            artist, len(albums_list))
        result += "<br>".join(album_names)
    return result
Beispiel #20
0
def albums(artist):
    albums_list = album.find(artist)
    albums_cnt = len(albums_list)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "Количество альбомов {}. Список альбомов {}: ".format(albums_cnt,artist)
        result += ", ".join(album_names)
    return result
Beispiel #21
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "Кол-во найденных альбомов - {}. Список альбомов {}:<br>".format(
            len(album_names), artist)
        result += "<br>".join(album_names)
    return result
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомы артиста {} не найдены".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "Найдено {} альбомов артиста {}:<br>".format(len(albums_list),artist)
        for i in range(len(album_names)):
            result += str(i+1) + ") " + album_names[i] + "<br>"
    return result
Beispiel #23
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "Количество альбомов у артиста {}: {} <br>".format(
            artist, len(album_names))
        result += "Список альбомов {}: ".format(artist)
        result += "<br>".join(album_names)
    return result
def albums(artist):
    albums_list = find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        albums_count = len(albums_list)
        result = "Колличество альбомов у исполнителя - {}. <br> Список альбомов {}: <br> - ".format(
            albums_count, artist)
        result += ", <br> - ".join(album_names) + "."
    return result
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        num_albums = len(album_names)
        str_albums = make_russian(num_albums)
        result = "У исполнителя {} {}:<br>".format(artist, str_albums)
        result += "<br>".join(album_names)
    return result
Beispiel #26
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        result = "<h1>Всего у {}, {} альбомов:</h1><ul><li>".format(
            artist, len(albums_list))
        result += "</li><li>".join(album_names)
        result += "</li></ul>"
    return result
Beispiel #27
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено!!!!!!!".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        count = len(album_names)
        result = "Всего альбомов {} и список альбомов {}: ".format(
            count, artist)
        result += ", ".join(album_names)
    return result
Beispiel #28
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        result = "В базе данных {} альбомов {}<br>".format(
            len(albums_list), artist)
        album_names = [album.album for album in albums_list]
        result += "Список альбомов {}: <br>".format(artist)
        result += ", <br>".join(album_names)
    return result
Beispiel #29
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        albums_count = str(len(albums_list))
        album_names = [album.album for album in albums_list]
        result = "Группа {}. Количество альбомов {} <br>".format(
            artist, albums_count)
        result += "<br>".join(album_names)
    return result
Beispiel #30
0
def albums(artist):
    albums_list = album.find(artist)
    if not albums_list:
        message = "Альбомов {} не найдено".format(artist)
        result = HTTPError(404, message)
    else:
        album_names = [album.album for album in albums_list]
        lengs = len(album_names)
        result = "Список альбомов {}:<br>".format(artist)
        result += "<br>".join(album_names)
        result += "<br>""Всего альбомов {}".format(lengs)
    return result