27 lines
1012 B
Python
27 lines
1012 B
Python
from spiderweb.exceptions import UnusedMiddleware
|
|
from spiderweb.middleware import SpiderwebMiddleware
|
|
from spiderweb.request import Request
|
|
from spiderweb.response import HttpResponse, RedirectResponse
|
|
|
|
|
|
class TestMiddleware(SpiderwebMiddleware):
|
|
def process_request(self, request: Request) -> None:
|
|
# example of a middleware that sets a flag on the request
|
|
request.spiderweb = True
|
|
|
|
def process_response(self, request: Request, response: HttpResponse) -> None:
|
|
# example of a middleware that sets a header on the resp
|
|
if hasattr(request, "spiderweb"):
|
|
response.headers["X-Spiderweb"] = "true"
|
|
|
|
|
|
class RedirectMiddleware(SpiderwebMiddleware):
|
|
def process_request(self, request: Request) -> HttpResponse:
|
|
if request.path == "/middleware":
|
|
return RedirectResponse("/")
|
|
|
|
|
|
class ExplodingMiddleware(SpiderwebMiddleware):
|
|
def process_request(self, request: Request) -> HttpResponse | None:
|
|
raise UnusedMiddleware("Unfinished!")
|