Django

Buforowanie w Django

Backendy cache, cache na poziomie widoku, cache fragmentów szablonu, niskopoziomowe API cache, unieważnianie cache

20 pytań z rozmów·
Mid-Level
1

Jaki jest domyślny backend cache w Django, jeśli nie określono żadnej konfiguracji?

Odpowiedź

Django domyślnie używa backendu 'LocMemCache' (cache w pamięci lokalnej), który przechowuje dane w pamięci procesu Pythona. Ten backend jest prosty i szybki, ale nie utrzymuje się między ponownymi uruchomieniami serwera i nie współdzieli danych między różnymi procesami. Nadaje się do programowania, ale nie jest zalecany w wieloprocesowych środowiskach produkcyjnych.

2

Którego dekoratora należy użyć, aby zbuforować pełną odpowiedź widoku na 15 minut?

Odpowiedź

Dekorator cache_page z django.views.decorators.cache buforuje pełną odpowiedź HTTP widoku. Parametrem jest czas w sekundach (15 minut = 900 sekund). Klucz cache jest generowany automatycznie z adresu URL i parametrów zapytania. Ten dekorator obsługuje również odpowiednie nagłówki HTTP dla buforowania.

3

Jaka jest poprawna składnia template tagu do buforowania fragmentu szablonu na 5 minut?

Odpowiedź

Tag {% cache %} buforuje fragment szablonu. Składnia to {% cache timeout cache_name %}...{% endcache %}. Pierwszy argument to czas w sekundach (300 dla 5 minut), drugi to unikalna nazwa identyfikująca ten fragment. Można dodać dodatkowe argumenty, aby zróżnicować cache (np. user.id).

4

Jak pobrać wartość z cache z wartością domyślną, jeśli klucz nie istnieje?

5

Który backend cache jest zalecany dla aplikacji Django w produkcji z wieloma instancjami?

+17 pytań z rozmów

Opanuj Django na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo