中间件和监听

中间件是在向服务器请求之前或之后执行的功能。它们可用于修改用户定义的处理函数的请求或响应。

另外,Sanic提供程序监听器允许您在应用程序生命周期的各个不同点运行代码。

中间件

两种中间件:请求和响应。都用装饰器@app.middleware声明,装饰器的参数是一个表示其类型的字符串:requset和response响应中间件接收请求和响应作为参数。

最简单的中间件不修改请求或响应:

@app.middleware('request')
async def print_on_request(request):
    print("I print when a request is received by the server")

@app.middleware('response')
async def print_on_response(request, response):
    print("I print when a response is returned by the server")

修改 请求和响应

中间件可以修改给定的请求或响应参数,只要它不返回。以下示例显示了一个实际的用例。

app = Sanic(__name__)

@app.middleware('response')
async def custom_banner(request, response):
    response.headers["Server"] = "Fake-Server"

@app.middleware('response')
async def prevent_xss(request, response):
    response.headers["x-xss-protection"] = "1; mode=block"

app.run(host="0.0.0.0", port=8000)

results matching ""

    No results matching ""