我已经创建了一个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]