Cache toevoegen aan Django

Een cache toevoegen kan een enorme performantieboost zijn voor een website. Django maakt het eenvoudig om een cache toe te voegen, het laat out of the box 3 manieren om te cachen toe:

  • Volledige site caching (elke pagina krijgt dezelfde behandeling)
  • Per view caching (Er kan per view bepaald worden of er gecached moet worden, en voor hoelang)
  • Low level caching (waar individuele objecten of databasequeries gecached kunnen worden.

Als ik bij een test applicatie per-view caching toevoeg als test, kan ik op een VM met 2 cores 600 requests/seconde verwerken in plaats van 200/seconde. In deze post zal ik toelichten hoe je per-view caching kan implementeren binnen Django

Lees verder

File uploads automatisch hernoemen in Django

Als we in Django een ImageField toevoegen aan een model gebruikt het de bestandsnaam van het originele bestand. Dit is niet ideaal voor applicaties waar gebruikers hun eigen foto’s kunnen uploaden. We kunnen dit oplossen door een functie te geven aan het argument “upload_to”. Het volgende voorbeeld vervangt de bestandsnaam door een automatisch gegenereerde bestandsnaam

import os
from uuid import uuid4
from django.utils.deconstruct import deconstructible

@deconstructible
class PathAndRename(object):

    def __init__(self, sub_path):
        self.path = sub_path

    def __call__(self, instance, filename):
        ext = filename.split('.')[-1]
        # set filename as random string
        filename = '{}.{}'.format(uuid4().hex, ext)
        # return the whole path to the file
        return os.path.join(self.path, filename)

# Then in your model
class Image(models.Model):
    #... other fields
    path_and_rename = PathAndRename('uploads/images/')
    image = models.ImageField(upload_to=path_and_rename)

Schaduw verwijderen van MacOS schermafbeeldingen

Bij het maken van een schermafdruk van een venster in macos is er standaard een schaduw aanwezig. Dit vind ik best iritant. Gelukkig kan je deze eenvoudig uitzetten

#disable
defaults write com.apple.screencapture disable-shadow -bool true ; killall SystemUIServer
#enable
defaults write com.apple.screencapture disable-shadow -bool false ; killall SystemUIServer

App defaults

Gebaseerd op aflevering 97 van Hemisphericviews, hier zijn mijn “app defaults”

Update: 2025-10-02

  • Mail client: Thunderbird
  • Mail server: Fastmail
  • notes: Een DokuWiki instance
  • photo management: Synology photo’s
  • Calendar: Thunderbird
  • cloud storage: Een Synology Nas
  • RSS: Momenteel niets …
  • Browser: Firefox
  • Chat: IRC, Matrix, Discord
  • Office Suite: Libre office
  • Budgetting: A libre office sheet
  • Music: Spotify
  • Podcasts: Spotify