본문 바로가기

엉터리 개발 이야기/Superset

[Superset][Flask appbuilder] 경로변경 /superset/welcome => /welcome 으로 변경하기(route_base)

반응형

/ 로 들어왔을 때 /superset/welcome 으로 이동하게 하는 부분은 __init__.py 에 설정되어 있다.

class MyIndexView(IndexView):
@expose('/')
def index(self):
return redirect('/superset/welcome')

/superset/welcome 으로 redirect 한다.


/superset 경로가 전체적으로 동일하게 되어 있지 않고 각각 메뉴마다 다르다.

Slice 메뉴는 /slicemodelview/...

Dashboard 메뉴는 /dashboardmodelview/...


정리가 필요하다...

flask_appbuilder/baseviews.py BaseView Class에 보면

if self.route_base is None:
self.route_base = '/' + self.__class__.__name__.lower()

route_base 가 None 이면 class name(lower) 으로 한다.


Custome View 의 클래스명으로 route_base가 설정되니 , 각각 다르게 된다.

superset/views/core.py

class Superset...

class DashboardModelView..

class SliceModelView..


동일하게 하거나 간결하게 바꾸고 싶으면, class 선언 부 밑에 route_base = '/superset' 을 넣어주면된다.

class DashboardModelView(SupersetModelView, DeleteMixin):  # noqa
route_base = '/dashboard'
datamodel = SQLAInterface(models.Dashboard)

list_title = _('List Dashboards')
show_title = _('Show Dashboard')
add_title = _('Add Dashboard')
edit_title = _('Edit Dashboard')

이렇게 넣어주면 Dashboard 메뉴에 접근하면 /dashboard/list 로 접근하는걸 확인 할 수 있다.



반응형