Flask - admin 快速入门
2016-12-25 15:24
585 查看
总结
快速高效的设置后台数据管理支持,查询,导出功能
不支持数据导入管理
最高效的学习方式,直接看后台源码
常见问题场景
对页面进行汉化自定义页面
自定义模型页面
自定模型页面中列的数据格式和内容
添加搜索/全文过滤
1 页面汉化
安装 Flask-BabelEx (cmd 中 输入 pip install Flask-BabelEx)在代码中添加如下代码段:
from flask_babelex import Babel #------------------ #@param app:flask app 程序 babel = Babel(app) @babel.localeselector def get_locale(): <!--override = request.args.get('lang')--> <!--if override:--> <!-- session['lang'] = override--> <!--return session.get('lang', 'zh_Hans_CN')--> return session.get('lang','zh_Hans_CN')
2 自定义页面
from flask_admin import expose,Admin,AdminIndexView class FruitView(AdminIndexView): @expose('/') def index(self): arg1 = 'home' if current_user.is_authenticated and current_user.username =='admin': #adminIndex.html 为与 app 的 static 文件夹下面 #其可继承任何jinja 模板 return self.render('adminIndex.html',arg1=arg1) else: return jsonify(u"请用管理员帐户登录") class MyView(BaseView): @expose('/') def index(self): arg1 = 'home' if current_user.is_authenticated and current_user.username =='admin': return self.render('adminIndex.html',arg1=arg1) else: return jsonify(u"请用管理员帐户登录") #使用自己重写的 Home view 来重置了库中原本提供的Home view #@param url ='/admin' 系统默认的,可以自己修改,设置的内容等同于 #admin = Blueprint('admin', __name__, url_prefix='/admin') #即该模块下的所有url 地址都将使用 url 来作为前缀 admin = Admin(app,name=u'后台管理',index_view=FruitView()) #添加页面 admin.add_view(MyView(name='RootView')) #添加下拉页面 admin.add_view(MyView(name='Hello 1', endpoint='test1', category='Subview'))
3 自定义模型页面
模型页面为flask-admin 的特殊功能,里面加入了 创建,编辑,删除,导出,搜索等数据管理功能操作类型有:
* can_create / can_edit / can_delete / can_export / 当以上标记设置为 True的时候 ,在模型页面中就能显示相关的按钮
控制类型:
* 筛选 column_searchable_list = [‘id’, ‘date’,’tickets’]
* 搜索 column_filters = column_searchable_list
字段汉化:
* 设置字段的映射表 column_labels=dict()
* 设置具体字段显示的内容 : column_formatters = dict()
* 在页面初始化的时候会从 column_labels 获取显示的列名称。在显示数据的时候 会使用 column_formatters 来格式化列中的数据列
class BaseModelView(ModelView): """ 模型视图基类 """ def is_accessible(self): return current_user.is_authenticated and current_user.username =='admin' column_display_pk = True #在页面中是否显示主键 can_create = False can_view_details = True can_export = True column_searchable_list = ['id', 'date','tickets'] column_filters = column_searchable_list column_labels = { 'id': u'编号' } #设置每个列的显示数据的格式化 column_formatters = { 'date' : lambda v, c, m, p: ("%s"%m.date).split(" ")[0], 'operator_id':lambda v, c, m, p:get_name(m.operator_id), } class MyModelView(BaseModelView): """具体的模型视图""" column_labels = copy.deepcopy(BaseModelView.column_labels) column_searchable_list = copy.deepcopy(BaseModelView.column_searchable_list) column_searchable_list.extend(["name",'support_id','isout']) column_filters = column_searchable_list column_labels.update({ 'name':u"品名" } #@param stock: 具体的 orm 对象 #@param name:显示在页面上按钮的文字 #@param database.session: 数据库会话 admin = Admin(app,name=u'后台管理',index_view=FruitView()) admin.add_view(StockModelView(stock, database.session,name=u'入库')) ![后台管理页面视图](http://img.blog.csdn.net/20161225152741909?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMzc0NjQ4Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
相关文章推荐
- flask快速入门
- flask 快速入门-05 之 `HTTP方法/静态文件`
- Flask入门之Bootstrap介绍使用和Flask-Nav快速导航栏
- Flask框架——快速入门
- flask-带你快速入门
- Flask快速入门
- flask-admin 快速打造博客 系列一
- flask快速入门
- Flask快速入门
- Flask 快速入门
- flask 快速入门-06 之 `渲染模板`
- [python]flask框架快速入门
- Flask快速入门
- Flask 快速入门
- flask框架实战—简单图片社交网站(一):Python语言快速入门
- flask 快速入门-04 之 `唯一 URLs/重定向行为`
- 【转】Flask快速入门
- Flask-SQLAlchemy 快速入门
- laravel admin快速入门
- Flask_admin 笔记一 (快速启用)