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 %}这里使用了模板和嵌套。