def new_album(): #проверяем являестя ли введенный год числом test_year = album.is_number(request.forms.get("year")) if test_year is not False: album_data = { "year": int(test_year), "artist": request.forms.get("artist"), "genre": request.forms.get("genre"), "album": request.forms.get("album") } ### проверяем есть ли такой альбом в базе if album.find_album(album_data["artist"], album_data["album"]): message = "Альбом {} {} найден в базе".format(album_data["artist"], album_data["album"]) result = HTTPError(409, message) else: if 0 <= album_data["year"] >= 2100: message = "Введены неверные данные поле год допускает значение от 0 до 2100" result = HTTPError(409, message) elif album_data["artist"].replace(" ", "") == "" or album_data["genre"].replace(" ", "") == "" or album_data["album"].replace(" ", "") == "": message = "Введены неверные данные поля артист, жанр или альбом не могут быть пустыми" result = HTTPError(409, message) else: album.album_add(album_data["year"], album_data["artist"], album_data["genre"], album_data["album"]) result = "Альбом {} {} добавлен в базу".format(album_data["artist"], album_data["album"]) else: message = "Введены неверные данные поле год содержит не числовые значения" result = HTTPError(409, message) return result
def album_new(): """ пример запроса http -f POST localhost:8090/albums year=2019 artist=Spleen genre=Rock album=NewAlbum """ album_new_album = request.forms.get("album") # ищем, есть ли такой альбом в БД или нет album_find = album_proc.find_album(album_new_album) if album_find: message = "Альбом {} уже найден в БД".format(album_new_album) HTTPError(409, message) else: album_data = { "year": request.forms.get("year"), "artist": request.forms.get("artist"), "genre": request.forms.get("genre"), "album": album_new_album } # если получаем сообщение - это сообщение об ошибке, иначе - если получаем пусто - все хорошо message = album_proc.add_album(album_data) if message: HTTPError(409, message) else: message = 'Запись добавлена' return message
def new_album(): """ POST-запрос. Принимает данные об альбоме и проверяет их. Если такой альбом уже есть в базе данных, то выводит ошибку, если нет, то сохраняет альбом в базу данных. """ album_data = { "year": request.forms.get("year"), "artist": request.forms.get("artist"), "genre": request.forms.get("genre"), "album": request.forms.get("album") } for key, value in album_data.items(): valid, message = validate_it(key, value) if not valid: return HTTPError(449, message) existing_album = album.find_album(album_data) if existing_album: return HTTPError( 409, "Данный альбом уже существует в базе данных. Его id - {}.".format( existing_album.id)) added_album = album.add_album(album_data) if added_album: print("Альбом сохранен в базу данных") return "Данные об альбоме успешно сохранены"
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(album_item): album_list = album_proc.find_album(album_item) result = '' if not album_list: message = "Альбом {} не найден".format(album_item) result = HTTPError(404, message) else: for album in album_list: result += "Информация по альбому {}<br>".format(album.album) result += '<br>' result += "Год выпуска {}<br>".format(album.year) result += "Исполнитель {}<br>".format(album.artist) result += "Жанр {}<br>".format(album.genre) return result
def albums(): album_data = { "year": request.forms.get("year"), "artist": request.forms.get("artist"), "genre": request.forms.get("genre"), "album": request.forms.get("album") } # ищем альбом с пользовательскими параметрами f_album = album.find_album(album_data) if f_album: # вызывается магичесский метод __bool__ класса Album message = "Альбом с названием {} {} года выпуска существует".format( f_album.album, f_album.year) result = HTTPError(409, message) else: result = save_album(album_data) return result
def add_album(): year = request.forms.get("year") try: year_validation.year_validation( year) #проверяет валидность значения для года except Exception: return HTTPError(400, 'Некорректное значение для года!') else: new_album = album.Album(year=year, artist=request.forms.get("artist"), genre=request.forms.get("genre"), album=request.forms.get("album")) if not (album.find_album(new_album)): album.save(new_album) else: raise HTTPError(409, f'Альбом {new_album.album} существует')