如何使用Flask-Admin将内容添加到索引页面

nyc*_*nik 3 flask flask-admin

我正在使用flask-admin,我想在主页上添加一个仪表板.我发现我可以使用以下命令添加新页面:

admin = Admin(name='Dashboard', base_template='admin/my_master.html', template_mode='bootstrap3')
Run Code Online (Sandbox Code Playgroud)

然后:

admin.init_app(app)
Run Code Online (Sandbox Code Playgroud)

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

nyc*_*nik 11

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

可以通过将您自己的视图类传递给Admin构造函数来覆盖它:

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

admin = Admin(index_view=MyHomeView())
Run Code Online (Sandbox Code Playgroud)

此外,您可以使用以下命令将/ url中的根URL更改为/:

admin = Admin(
    app,
    index_view=AdminIndexView(
        name='Home',
        template='admin/myhome.html',
        url='/'
    )
)
Run Code Online (Sandbox Code Playgroud)

索引页面的默认值为:

  • 如果未提供名称,将使用"主页".
  • 如果未提供端点,则默认为admin默认URL路由为/ admin.
  • 自动与静态文件夹关联.默认模板是admin/index.html