File: 6-caching.rst

package info (click to toggle)
python-flickrapi 2.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 468 kB
  • sloc: python: 2,145; makefile: 147; sh: 10
file content (40 lines) | stat: -rw-r--r-- 1,639 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

Caching of Flickr API calls
======================================================================

There are situations where you call the same Flickr API methods over
and over again. An example is a web page that shows your latest ten
sets. In those cases caching can significantly improve performance.

The FlickrAPI module comes with its own in-memory caching framework.
By default it caches at most 200 entries, which time out after 5
minutes. These defaults are probably fine for average use. To use the
cache, just pass ``cache=True`` to the constructor::

    flickr = flickrapi.FlickrAPI(api_key, cache=True)

To tweak the cache, instantiate your own instance and pass it some
constructor arguments::

    flickr = flickrapi.FlickrAPI(api_key, cache=True)
    flickr.cache = flickrapi.SimpleCache(timeout=300, max_entries=200)

``timeout`` is in seconds, ``max_entries`` in number of cached
entries.

Using the Django caching framework
----------------------------------------------------------------------

The caching framework was designed to have the same interface as the
`Django low-level cache API`_ - thanks to those guys for designing a
simple and effective cache. The result is that you can simply plug the
Django caching framework into FlickrAPI, like this::
    
    from django.core.cache import cache
    flickr = flickrapi.FlickrAPI(api_key, cache=True)
    flickr.cache = cache

That's all you need to enable a wealth of caching options, from
database-backed cache to multi-node in-memory cache farms.

.. _`Django low-level cache API`: https://docs.djangoproject.com/en/dev/topics/cache/#the-low-level-cache-api