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(): 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 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 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 add_new_album(): input_encoding = 'utf8' try: YEAR_ = int(request.forms.get('year')) except: YEAR_ = None GENRE_ = str(request.forms.get('genre')).strip() ARTIST_ = str(request.forms.get('artist')).strip() ALBUM_ = str(request.forms.get('album')).strip() assert len(ALBUM_) > 0, 'Заполните поле <Название альбома>' assert len(ARTIST_) > 0, 'Заполните поле <Артист или группа>' assert album.if_not_exist(ARTIST_, ALBUM_), 'Такой альбом группы уже есть в базе' DEVNULL_ = album.add_album(YEAR_, ARTIST_, GENRE_, ALBUM_) OUTPUT_ = '<P><A HREF="/">Вернуться на Home Page</A></P>' OUTPUT_ += 'Альбом <B>' + ARTIST_ + ' -- ' + ALBUM_ + '</B> добавлен в базу.' return OUTPUT_
def albums(): album_data = { "year":request.forms.year, "artist":request.forms.artist, "genre":request.forms.genre, "album":request.forms.album } if not int(album_data["year"]) or int(album_data["year"]) > 2020: raise AlbumError("Некорректно указан год") elif not isinstance(album_data["artist"], str): raise AlbumError("Исполнитель указан некорректно (не является строковым)") elif not isinstance(album_data["genre"], str): raise AlbumError("Жанр указан некорректно (не является строковым)") elif not isinstance(album_data["album"], str): raise AlbumError("Альбом указан некорректно (не является строковым)") elif album.check_album(album_data): message = "Альбом {} исполнителя {} уже есть в базе".format(album_data["album"], album_data["artist"]) result = HTTPError(409, message) else: result = album.add_album(album_data) return result
def new_album(): album = { "year": request.forms.get("year"), "artist": request.forms.get("artist"), "genre": request.forms.get("genre"), "album": request.forms.get("album") } if album["album"] in db.find_albums(album["artist"]): message = "Альбом с таким названием уже имеется в базе." response = HTTPError(409, message) else: if not db.data_stack_valid(album): message = "Не все требуемые данные были введены." response = HTTPError(449, message) elif not db.year_valid(album["year"]): message = "Указанное значение не может быть годом." response = HTTPError(400, message) else: new_album = db.add_album(album) db.save_album(new_album) response = "Альбом успешно сохранен." return response