如何在类上下文中使用自定义错误页?

2024-04-20 15:45:53 发布

您现在位置:Python中文网/ 问答频道 /正文

Flask文档clearly explains如何通过^{}装饰器创建自定义错误页。你知道吗

当我的Flask应用程序是类的一部分时,如何使用自定义页因为decorator不能与方法一起使用?举个例子:

import flask

class Webserver:
    def __init__(self):
        app = flask.Flask(__name__)
        app.add_url_rule('/', view_func=self.hello)
        app.run()

    def hello(self):
        return 'hello'

if __name__ == "__main__":
    Webserver()

add_url_rule()的使用绕过了路由的同一个问题,是否有errorhandler()的等价物?你知道吗


Tags: name文档selfaddappurlflaskhello
1条回答
网友
1楼 · 发布于 2024-04-20 15:45:53

有一种直接注册错误处理程序的等效方法,称为^{}

class Webserver:
    def __init__(self):
        app = flask.Flask(__name__)
        app.add_url_rule('/', view_func=self.hello)
        app.register_error_handler(404, self.not_found_handler)
        app.run()

即便如此,errorhandler()只需要传递给绑定方法。例如,如果要注册一个方法作为404 Not FoundHTTP代码的处理程序,只需为404创建decorator对象,并使用绑定方法作为参数调用该对象:

class Webserver:
    def __init__(self):
        app = flask.Flask(__name__)
        app.add_url_rule('/', view_func=self.hello)
        app.errorhandler(404)(self.not_found_handler)
        app.run()

这是因为@app.errorhandler()修饰符所做的只是注册可调用的,所以返回值仍然是原始的可调用值。您可以在这里忽略它,只在注册操作中使用它。你知道吗

这同样适用于app.route()装饰器。你知道吗

相关问题 更多 >