JessePinkmen 2019-10-20
flask也用了很久了,一般配合flask-admin设置后台。
但是flask-admin设置的都是自己加入的,对某些model进行管理。
下面介绍如何定制flask-admin的首页。
原来我们引入flask-admin
是这么写的
admin = Admin(app)
现在要写更多参数了。
例1:admin = Admin( app, name=‘导航管理‘, index_view=MyAdminIndexView(name=‘预览页‘), template_mode=‘bootstrap3‘ )
继续查看源码
self.index_view = index_view or AdminIndexView(endpoint=endpoint, url=url)
继续看例1的index_view,我使用了自定义类MyAdminIndexView,其实它是继承自AdminIndexView。
class MyAdminIndexView(AdminIndexView): @expose(‘/‘) def default(self): plan = [ { ‘date‘: ‘20171212‘, ‘train‘: ‘T198‘, ‘track‘: ‘8‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T199‘, ‘track‘: ‘9‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T197‘, ‘track‘: ‘7‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T196‘, ‘track‘: ‘6‘ } ] return self.render(‘admin.html‘, plans = plan)
注意:平时我们用的都是
return render_template(‘admin.html‘)
在flask-admin中,我们使用
return self.render(‘admin.html‘, plans = plan)
另附admin.html
{% extends ‘admin/index.html‘ %} {% block body %} Hello World from MyView! {% for plan in plans %} {{ plan.date }} {{ plan.train }} {{ plan.track }} <br> {% endfor %} {% endblock %}
这里使用了模板和嵌套。