flask_admin 笔记三 客户化视图
客户化视图
1, model数据模型参数配置
1)配置全局参数
内置的ModelView类很适合快速入门。 但是,您需要配置其功能以适合您的特定型号。 这是通过设置ModelView类中提供的配置属性的值来完成的。
需要指定一些全局配置参数,首先是实现ModelView的子类并配置全局参数,然后在admin中添加所有的model数据模型:
from flask_admin.contrib.sqla import ModelView # Flask and Flask-SQLAlchemy initialization here class MicroBlogModelView(ModelView):
can_delete = False # disable model deletion
page_size = # the number of entries to display on the list view admin.add_view(MicroBlogModelView(User, db.session))
admin.add_view(MicroBlogModelView(Post, db.session))
2)当然,你也可以为单一model数据模型指定参数:
class UserView(ModelView): ##这就是所谓的modelview了
can_delete = False # disable model deletion class PostView(ModelView):
page_size = # the number of entries to display on the list view admin.add_view(UserView(User, db.session))
admin.add_view(PostView(Post, db.session))
2,ModelView 配置属性
有关已定义属性的完整列表,请查看BaseModelView()的API文档。 以下是一些最常用的属性:
1) 设置CURD的选项
can_create = False
can_edit = False
can_delete = False
2) 对于一些只读列表的信息,你可以增加read-only的属性
can_view_details = True
3) 从列表视图中删除列很容易,只需传递column_excludes_list参数的列名称列表:
column_exclude_list = ['password', ]
4) 要使列可搜索,或使用它们进行过滤,请指定列名称的列表:
column_searchable_list = ['name', 'email']
column_filters = ['country']
5) 要获得更快的编辑体验,请在列表视图中启用内嵌编辑:
column_editable_list = ['name', 'last_name']
6) 或者,添加和编辑表单显示在列表页面上的模态窗口中,而不是专用的创建和编辑页面:
create_modal = True
edit_modal = True
7) 您可以通过指定选择列表来限制文本字段的可能值:
form_choices = {
'title': [
('MR', 'Mr'),
('MRS', 'Mrs'),
('MS', 'Ms'),
('DR', 'Dr'),
('PROF', 'Prof.')
]
}
8) 从创建和编辑表单中删除字段:
form_excluded_columns = ['last_name', 'email']
9) 指定WTForms 文本域的参数设置
form_args = {
'name': {
'label': 'First Name',
'validators': [required()]
}
}
10)或者,指定用于呈现这些字段的WTForms小部件的参数:
form_widget_args = {
'description': {
'rows': ,
'style': 'color: black'
}
}
11)当你的表单包含外键时,通过ajax加载这些相关的模型,使用:
form_ajax_refs = {
'user': {
'fields': ['first_name', 'last_name', 'email'],
'page_size':
}
}
12)要过滤通过ajax加载的结果,可以使用:
form_ajax_refs = {
'active_user': QueryAjaxModelLoader('user', db.session, User,
filters=["is_active=True", "id>1000"])
}
13)在线管理相关模型:
inline_models = ['post', ]
具体的inline_models可以查看http://flask-admin.readthedocs.io/en/latest/api/mod_contrib_sqla/#flask_admin.contrib.sqla.ModelView.inline_models
14)实现csv导出功能参数:
can_export = True
这里会增加一个按钮,用于导出记录,最大的导出数可以参考export_max_rows
http://flask-admin.readthedocs.io/en/latest/api/mod_model/#flask_admin.model.BaseModelView.export_max_rows
flask_admin 笔记三 客户化视图的更多相关文章
- flask_admin 笔记四 自定义视图
定义自己的视图 对于您的要求非常具体的情况,您很难用内置的ModelView类来满足这些需求,Flask-Admin使您可以轻松地完全控制并将自己的视图添加到界面中. 1)独立视图 可以通过扩展Bas ...
- 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现
本系列文章由七十一雾央编写,转载请注明出处. 313239 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5 ...
- angular学习笔记(三十一)-$location(1)
本篇介绍angular中的$location服务的基本用法,下一篇介绍它的复杂的用法. $location服务的主要作用是用于获取当前url以及改变当前的url,并且存入历史记录. 一. 获取url的 ...
- angular学习笔记(三十)-指令(6)-transclude()方法(又称linker()方法)-模拟ng-repeat指令
在angular学习笔记(三十)-指令(4)-transclude文章的末尾提到了,如果在指令中需要反复使用被嵌套的那一坨,需要使用transclude()方法. 在angular学习笔记(三十)-指 ...
- angular学习笔记(三十)-指令(5)-link
这篇主要介绍angular指令中的link属性: link:function(scope,iEle,iAttrs,ctrl,linker){ .... } link属性值为一个函数,这个函数有五个参数 ...
- angular学习笔记(三十)-指令(2)-restrice,replace,template
本篇主要讲解指令中的 restrict属性, replace属性, template属性 这三个属性 一. restrict: 字符串.定义指令在视图中的使用方式,一共有四种使用方式: 1. 元素: ...
- DirectX11笔记(三)--Direct3D初始化代码
原文:DirectX11笔记(三)--Direct3D初始化代码 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article ...
- DirectX11笔记(三)--Direct3D初始化2
原文:DirectX11笔记(三)--Direct3D初始化2 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article/ ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
随机推荐
- 如何在 Azure 中均衡 Windows 虚拟机负载以创建具有高可用性的应用程序
负载均衡通过将传入请求分布到多个虚拟机来提供更高级别的可用性. 本教程介绍了 Azure 负载均衡器的不同组件,这些组件用于分发流量和提供高可用性. 你将学习如何执行以下操作: 创建 Azure 负载 ...
- 使用SQL Server Management Studio操作replication时,要用机器名登录,不要用IP地址
如果你在使用SSMS(SQL Server Management Studio)登录SQL Server时,使用的是IP地址,如下图所示: 当你操作replication时,会报错: 从上面的错误提示 ...
- HTML5学习资料
HTML5 的一些经典demo收集 Animated Books with CSS 3D Transforms 这是一个3D书本,CSS3完成 =========HTML5特效聚集网站======== ...
- Linux 基本概念 & 命令
0. Linux 理解 Linux 是一种操作系统,主要应用于服务器. Linux 性能稳定,其中的许多版本不收费(如CentOS),占用资源较少. 1. 命令行的状态 在 Linux 命令行下以上分 ...
- CentOS7中部署Showdoc
目录 CentOS7中部署Showdoc 前置环境 部署 配置文件 解压安装包 添加启动服务 设置权限 运行安装 界面 CentOS7中部署Showdoc 文:铁乐与猫 前置环境 因为showdoc其 ...
- leetcode 1. Two Sum [java]
注意点: HashMap<Integer, Integer> return new int[]{}; 3 2 4 target:6 return null; public int[] tw ...
- 【Ansible 文档】【译文】主机清单文件
Inventory 主机清单文件 Ansible 可以对你的基础设施中多个主机系统同时进行操作.通过选择在Ansible的inventory列出的一部分主机来实现.inventory默认保存在/etc ...
- vue-devtoools 调试工具安装
最近在研究vue单页面应用,一步一步用上全家桶,开发避免不了的就是调试工具,因为vue是进行数据驱动的,单从chrome里面进行element查看,查不到什么鸟东西,必须要进行对数据动向进行关查,那我 ...
- poi 创建excel数据
public static void main(String[] args) throws Exception { // TODO 设置excel的标题 List<String> exce ...
- PHP安全过滤函数
在PHP中,有些很有用的函数开源非常方便的防止你的网站遭受各种攻击,例如SQL注入攻击,XSS(Cross Site Scripting:跨站脚本)攻击等. 1. mysql_real_escap ...