Flask蓝图继承

时间:2015-06-03 16:51:04

标签: flask routes

我有一个名为ApplicationController的基类,如下所示:

class ApplicationController():
    @application_controller.before_request
    def verify_auth():
        if g.authenticated == False:
            return send_to_login('You must be logged in to continue')

我想知道如何将继承与烧瓶蓝图一起使用。我希望从ApplicationController继承子类,以便在对ApplicationController的每个子控制器的每个请求上运行verify_auth方法

因此,示例AdvertiserReportsController看起来像这样,并且会在对AdvertiserReportsController的每个请求上运行ApplicationController的verify_auth方法:

class AdvertiserReportsController(ApplicationController):

    @advertiser_reports.route('/some/route')
    def some_route():
        return jsonify({ 'success' : True })

但是,尽管继承,但每次请求对AdvertiserReportsController都不会运行verify_auth方法。这两个课程都在应用程序中注册了他们的蓝图。

所以现在我最终使用.before_request方法将verify_auth方法添加到ever控制器......这是重复的,似乎是错误的..

class AdvertiserReportsController(ApplicationController):

    @advertiser_reports.before_request
    def verify_auth():
        if g.authenticated == False:
            return send_to_login('You must be logged in to continue')

    @advertiser_reports.route('/some/route')
    def some_route():
        return jsonify({ 'success' : True })

0 个答案:

没有答案