2016-03-23 31 views
1

我正在使用flask-admin,并且我想将一个仪表板添加到主页。我发现我可以添加使用了新的一页:如何添加内容到索引页使用Flask-Admin

admin = Admin(name='Dashboard', base_template='admin/my_master.html', template_mode='bootstrap3') 

则:

admin.init_app(app) 

,最后我说my_master.html,并添加内容。但是,它全部是静态的,我如何将自定义数据添加到该视图?

回答

4

我找到了文档中的答案:http://flask-admin.readthedocs.org/en/latest/api/mod_base/

它可以通过将自己的视图类来管理构造覆盖:

class MyHomeView(AdminIndexView): 
    @expose('/') 
    def index(self): 
     arg1 = 'Hello' 
     return self.render('admin/myhome.html', arg1=arg1) 

admin = Admin(index_view=MyHomeView()) 

此外,您可以将/ url的根url更改为/ with以下内容:

admin = Admin(
    app, 
    index_view=AdminIndexView(
     name='Home', 
     template='admin/myhome.html', 
     url='/' 
    ) 
) 

的索引页面默认值为:

  • 如果不提供名称,“家庭”将被使用。
  • 如果未提供端点,则默认为admin默认URL路由为/ admin。
  • 自动关联静态文件夹。默认模板是admin/index.html
+0

如果您正在阅读本文,xhr/ajax也许是您项目的最佳解决方案。我发现这是另一种适用于我的仪表板的选项。 – nycynik

1

根据flask-admin documentation使用:

from flask_admin import BaseView, expose 

class AnalyticsView(BaseView): 
    @expose('/') 
    def index(self): 
     return self.render('analytics_index.html', args=args) 

admin.add_view(AnalyticsView(name='Analytics', endpoint='analytics')) 
+1

这并不显示如何将数据传递到页面。 – nycynik

相关问题