覆盖Airflow的默认管理员索引页面

时间:2020-03-26 09:22:49

标签: jinja2 airflow airflow-operator

我已经创建了一个Airflow插件,该插件创建了一个名为 Test Plugin 的新菜单,并添加了一个子菜单 Test View ,因此单击 Test View 打开该页面成功,并向我显示 test.html 页面中的内容。

当前,Airflow在网址 http://localhost:8080/admin/ 上显示着陆页,其中列出了所有的Dag。

我的要求是将此 test.html 页显示为登录页面/主页。

的结构如下:

-AIRFLOW_HOME / plugins / templates / test_plugin / test.html

-AIRFLOW_HOME / plugins / test_view.py

test_view.py 中的代码如下:

from airflow.plugins_manager import AirflowPlugin
from flask import Blueprint
from flask_admin import BaseView, expose
from flask_admin.base import MenuLink

class TestView(BaseView):
    @expose('/')
    def test(self):        
        return self.render("test_plugin/test.html", content="Hello galaxy!")
v = TestView(category="Test Plugin", name="Test View")

blue_print_ = Blueprint("test_plugin",
                        __name__,
                        template_folder='templates',
                        static_folder='static',
                        static_url_path='/static/test_plugin')

class AirflowTestPlugin(AirflowPlugin):
    name = "test_plugin"
    flask_blueprints = [blue_print_]
    admin_views = [v]    

0 个答案:

没有答案