flask-xadmin自带后台登录界面、权限管理使用说明

2017-07-02  本文已影响0人  卡萨诺瓦_

flask-xadmin其实就是集成了Flask-Admin、Flask-SQLAlchemy、Flask-Security的扩展

使用说明:

1.安装

pip install Flask-Admin

pip install Flask-SQLAlchemy

pip install Flask-Security

pip install flask-xadmin

2.整合

可以参考作者在2016.12月写的例子

https://github.com/hexo-/flask-xadmin/blob/master/flask_xadmin/examples/simple.py

其中

classRole(db.Model,RoleMixin)以及ID, name and description字段是必须的,且doc="Full name"这种说明也不能少

和classUser(db.Model,UserMixin)以及id email password active字段是必须的,且doc="Full name"这种说明也不能少(参考 http://flask-security-zh-cn.readthedocs.io/zh_CN/latest/models.html)

app.config['SECURITY_PASSWORD_HASH']和app.config['SECURITY_PASSWORD_SALT']是必须的

password字段的长度不得低于120,User模型里的所有字段char长度之和不能超过1000

其他地方直接照搬例子即可。

其中要注意的是

views=[

myModelView(model=User,session=db.session,category='Entities'),

myModelView(model=Role,session=db.session,category='Entities'),

myModelView(model=Mydata,session=db.session,category='Entities'),

myFileAdmin(base_path='.',name="Files",category='Files']

需要修改,在category属性后面再添加endpoint属性,即:

views=[

myModelView(model=User,session=db.session,category='Entities',endpoint="User"),

myModelView(model=Role,session=db.session,category='Entities',endpoint="Role"),

myModelView(model=Mydata,session=db.session,category='Entities',endpoint="Mydata"),

myFileAdmin(base_path='.',name="Files",category='Files',endpoint="files")]

不然会报错蓝图重复错误:

AssertionError: A blueprint's name collision occurred between and . Both share the same name "workflow". Blueprints that are created on the fly need unique names.

上一篇下一篇

猜你喜欢

热点阅读