flask admin是flask框架中一个非常好用的后台管理框架,但是由于文档内容太少,经常遇到问题无法解决,这里记录一下

一简单的使用

from flask import Flask
from flask_admin import Admin
# csrf
from flask_admin.form import SecureForm
from flask_babelex import Babel
# 文件上传
# from flask_admin import form as admin_form from wtforms import form, fields, validators from flask_admin.contrib.pymongo import ModelView
from pymongo import MongoClient from werkzeug.security import check_password_hash # 文件上传
# from flask_admin.contrib.fileadmin import FileAdmin
# import os.path as op # file_path = op.join(op.dirname(__file__), 'static') app = Flask(__name__)
babel = Babel(app)
app.config['SECRET_KEY'] = 'xxx'
app.config['BABEL_DEFAULT_LOCALE'] = 'zh_CN'
client = MongoClient(host='xxx’, port=27017)
db = client.test
db.authenticate('xxx', 'xxx')
Rentals = db.rentals class RentalsForm(form.Form):
city = fields.StringField(u'城市') class RentalsView(ModelView):
column_labels = dict(
_id = u'编号',
city = u'城市',
) form_base_class = SecureForm
# 文件上传
# form_extra_fields = {
# 'picture': admin_form.ImageUploadField(label=u'照片', base_path=file_path)
# }
column_list = ['_id', 'city']
form = RentalsForm if __name__ == '__main__':
admin = Admin(app, name=u'后台管理系统')
admin.add_view(RentalsView(Rentals, name=u'个人房源'))
app.run

二filed.FieldList,field.FormField的使用

在使用数据库mongodb的时候会遇到某个字段是个列表

这时候就可以使用field.FieldList

features = fields.FieldList(unbound_field=fields.StringField(u'配置'), label=u'房屋配置', min_entries=10)

这样编辑的时候就会有10个配置可以编辑,修改min_entries可以增加编辑的个数

保存之后是个列表

但是如果该字段是个列表,列表元素都是字典怎么办

这时候可以搭配FormField来使用

class PictureForm(form.Form):
id = fields.StringField(u'编号')
description = fields.StringField(u'描述')
url = fields.StringField(u'url路径')
    picture = fields.FieldList(unbound_field=fields.FormField(PictureForm), label=u'图片', min_entries=10)

搞定了

flask admin学习记录的更多相关文章

  1. Phyton Flask框架学习记录。

    注意:在左侧菜单栏(在JQuery插件库下载的)右边是采用<iframe> 标签嵌入其他页面,此时标签的src应用用后台中的方法名称(本人测试用的是无参数的方法), 而页面跳转window ...

  2. [ZHUAN]Flask学习记录之Flask-SQLAlchemy

    From: http://www.cnblogs.com/agmcs/p/4445583.html 各种查询方式:http://www.360doc.com/content/12/0608/11/93 ...

  3. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  4. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  5. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  6. mondb 常用命令学习记录

    mondb 常用命令学习记录 一.MongoDB 下载安装 MongoDB官网 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制 ...

  7. Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客

    ==他的博客应该不错,没有细看 Spring Boot学习记录(二)--thymeleaf模板 - CSDN博客 http://blog.csdn.net/u012706811/article/det ...

  8. SVN教程 -- 基于自己学习记录

    SVN教程 -- 基于自己学习记录 1. 概述 a. 什么是SVN? Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.相较于 git ,svn 是集中式版本控 ...

  9. Solr学习记录:Getting started

    目录 Solr学习记录:Getting started 1.Solr Tutorial 2. A Quick Overview Solr学习记录:Getting started 本教程使用环境:jav ...

随机推荐

  1. locust===官方说明文档,关于tasks

    安装: >>> pip  install locust locust在官方simple_code中如下: from locust import HttpLocust, TaskSet ...

  2. PL/SQL 07 触发器 trigger

    --触发器 触发器有三类: 数据操作触发器    用before触发器进行数据校验    用after触发器进行级联操作    语句触发器限制数据的操作和记录操作日志    instead of 触发 ...

  3. BZOJ 4522: [Cqoi2016]密钥破解

    http://www.lydsy.com/JudgeOnline/problem.php?id=4522 题目:给你RSA密钥的公钥和密文,求私钥和原文,其中\(N=pq\le 2^{62}\),p和 ...

  4. phpstorm调试环境XDebug搭建

    1.安装XDebug,通过phpinfo()可以看到xdebug是否已安装!!!如果未安装,可以先看我的另一篇关于XDebug安装的文章:http://www.cnblogs.com/cxscode/ ...

  5. BigDecimal常用操作

    import java.math.BigDecimal; public class BigDecimalUtil { /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 ...

  6. (一)lua基础语法

    1.从hellowrold开始 --语法和Python比较类似,直接像Python一样使用print即可 --这里我可以直接写中文,显然被当成了注释.在lua中,两个-表示注释 --[[ 这种形式可以 ...

  7. TimeUnit 笔记

    TimeUnit笔记 1.TimeUnit 简介 TimeUnit是java.util.concurrent包下的一个枚举类,其主要封装了时间单位之间的转换以及基于时间上对线程的基本操作(sleep, ...

  8. java两种实现二分查找方式

    二分查找法适用于 升序排列的数组,如果你所要操作的数组不是升序排序的,那么请用排序算法,排序一下. 说明:使用二分查找法相比顺序查找  节约了时间的开销,但是增加了空间使用.因为需要动态记录 起始索引 ...

  9. mysql数据库设计之三范式

    第一范式: 第二范式:   正解: 第三范式: 示例: 正解: BC范式: 示例: 正解:

  10. AC日记——[HNOI2008]越狱 bzoj 1008

    1008 思路: 越狱情况=总情况-不越狱情况: 代码: #include <cstdio> #include <cstring> #include <iostream& ...