flask-xadmin自带后台登录界面、权限管理使用说明
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.