F'Django, request jiġi mmaniġġjat mill-WSGI/ASGI handler, imgeżwer minn munzell ta' middleware, irrawtjat mill-URL resolver għal view, u mibdul f'HttpResponse li jerġa' joħroġ lura mill-istess middleware b'ordni maqluba.
F'Django, request jiġi mmaniġġjat mill-WSGI/ASGI handler, imgeżwer minn munzell ta' middleware, irrawtjat mill-URL resolver għal view, u mibdul f'HttpResponse li jerġa' joħroġ lura mill-istess middleware b'ordni maqluba.
Web server ──▶ WSGI/ASGI handler (joħloq HttpRequest)
▼
Middleware — fażi tar-request (fuq → isfel: __call__ qabel get_response)
▼
URL resolver (urls.py) ── aqbel path → view + kwargs
▼
Middleware — hook process_view
▼
View (function / class-based) ── il-logic tiegħek, jibgħat HttpResponse
▼
Middleware — fażi tar-response (isfel → fuq: wara get_response)
▼
HttpResponse ──▶ client
HttpRequest mill-environ/scope.get_response() jiġri minn fuq għal isfel (SecurityMiddleware, SessionMiddleware, AuthenticationMiddleware, CSRF, …). Kwalunkwe wieħed minnhom jista' jaqta' l-proċess u jibgħat response kmieni.ROOT_URLCONF jitqabblu mal-path biex jagħżlu view u jaqbdu l-kwargs.process_view — hook tal-middleware li jiġri eżatt qabel ma jissejjaħ il-view.HttpResponse. L-eċċezzjonijiet jixegħlu process_exception.get_response() jiġri minn isfel għal fuq, u jħalli lill-middleware jimmodifika r-response ħiereġ (headers, compression).HttpResponse jiġi streamjat lura lejn is-server u l-client.# middleware.py
class TimingMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request): # 2. fażi tar-request (qabel)
request.started = time.monotonic()
response = self.get_response(request) # isejjaħ is-saff li jmiss / view
response["X-Time"] = "..." # 6. fażi tar-response (wara)
return response
# urls.py → 3. routing
urlpatterns = [path("items/<int:pk>/", views.item_detail)]
# views.py → 5. view
def item_detail(request, pk):
return render(request, "item.html", {"item": Item.objects.get(pk=pk)})
Iċ-ċiklu request/response ta' Django huwa ċentrat fuq il-middleware, għalhekk il-biċċa l-kbira tal-imġiba cross-cutting — auth, sessions, CSRF, security headers, caching — hija implimentata bħala middleware ordnat. Li tifhem li l-kodiċi tal-fażi tar-request jiġri minn fuq għal isfel u l-kodiċi tal-fażi tar-response jiġri minn isfel għal fuq (u li l-ordni f'MIDDLEWARE huwa importanti) huwa essenzjali biex tqiegħed il-middleware tiegħek b'mod korrett, tagħmel debug għaliex 403/redirect iseħħ qabel il-view tiegħek, u tkun taf fejn taqbad il-logic mingħajr ma tmiss kull view.
Librerija ta' mistoqsijiet ta' intervisti tal-IT b'tweġibiet dettaljati — minn Junior sa Senior.
Iddona