笔者是看狗书入门的flask,狗书上对于flask-admin这个扩展并没有进行讲解,最近因为项目需要,学习使用flask-admin,瞬间体会到了flask开发的快速、扩展的强大
Flask-admin 使用经验技巧总结
from flask_admin import Admin,BaseView,expose,AdminIndexView from flask_admin.contrib.sqla import ModelView
先把最终效果图放上
一、模型视图
1.管理新闻、管理公告、管理文件、管理展示栏是四个与数据库表同步的模型视图,如果你想要在后台管理程序中数据库中的表在初始化admin后仅需一句代码
admin = Admin(app)
admin.add_view(ModelView(User, db.session))
2.但是有时候flask-admin的默认设置并不能满足你的条件,如果我们在后台只打算让表中固定的几列数据显示,这时候我们就不能直接像上面那样直接ModelView,我们需自定义一个类并继承ModelView,并重写一些代码,把想要显示出来的列名写在column_list中
class MyV1(ModelView): column_list = ('id', 'title','timestamp','count','content') def __init__(self, session, **kwargs): super(MyV1, self).__init__(News, session, **kwargs)
然后在程序中再加入代码如下,然后就OK了
admin.add_view(MyV1(db.session,name = u'管理新闻'))
3.如果我们使用flask做网站是给自己使用,后台和数据库中同步的列名是英文显示没有多大影响,自己写的数据库难道还不知道什么意思,但是当我们是写给非技术人员使用时,他们可能不能理解每个列名是什么意思,所以现在我们就需要将列名中文化,也是需要重写column_labels
class MyV1(ModelView): column_labels = { 'id':u'