def return_all_tracks(self, use_cache=True): """ Cache seems useless, but still fun! And it still makes it 50 times faster... """ global cache_return_tracks if use_cache == False: cache_return_tracks = {'created':time.time()} elif use_cache == True: try: cache_return_tracks = cache.read_albums(cache_return_tracks) except NameError: cache_return_tracks = {'created':time.time()} start = time.time() all_tracks = models.Tracks.query.all() list_tracks = [] for track in all_tracks: if track in cache_return_tracks: list_tracks.append([cache_return_tracks[track][0], cache_return_tracks[track][1], cache_return_tracks[track][2], cache_return_tracks[track][3]]) else: list_tracks.append([track.id, track.title, track.artist, str(track.album)]) cache_return_tracks.update({track:[track.id, track.title, track.artist, str(track.album)]}) print time.time() - start return list_tracks
def return_all_albums(self, use_cache=True): """ Cache is useful here: from 2 seconds to 0.02 seconds """ if use_cache == False: cache_return_albums = {'created':time.time()} elif use_cache == True: try: cache_return_albums = cache.read_albums(cache_return_albums) except NameError: cache_return_albums = {'created':time.time()} global cache_return_albums start = time.time() all_albums = models.Albums.query.all() list_albums = [] for album in all_albums: if album in cache_return_albums: list_albums.append([cache_return_albums[album][0],cache_return_albums[album][1],cache_return_albums[album][2],cache_return_albums[album][3]]) else: values = list(album.tracks.values('artist', 'title')) list_albums.append([album.name, str(album.id), values[0][0], values[0][1]]) cache_return_albums.update({album:[album.name, str(album.id), values[0][0], values[0][1]]}) print time.time() - start return list_albums