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
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
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
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
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
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
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
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
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))
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
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
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
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
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
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
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
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
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
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
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
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