Sobes.tech
Junior — Middle

Kas teil on kogemusi oma vahekihtide (middleware) arendamisel Django või sarnastes raamistikudes?

sobes.tech AI

Vastus AI-lt

Jah, Django võimaldab luua oma vahekihte (middleware), mis töötlevad päringuid ja vastuseid raamistikutasandil. Middleware on klass, mis haarab päringud enne, kui need jõuavad vaadetele, ja/või vastused enne, kui need saadetakse kliendile.

Näide lihtsast middleware'ist, mis logib päringu töötlemisaega:

import time

class SimpleTimingMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        start_time = time.time()
        response = self.get_response(request)
        duration = time.time() - start_time
        print(f"Päring aadressile {request.path} kestis {duration:.4f} sekundit")
        return response

Middleware'i kasutamiseks tuleb lisada selle klass Django seadistuste MIDDLEWARE nimekirja. See lähenemine võimaldab lisada ristküljelisi funktsioone, nagu logimine, autentimine, vigade käsitlemine ja muud.