Flask-Admin是一个为Python的Flask框架服务的微型框架,可以像Django-Admin那样为用户生成Model层面的数据管理界面,接下来就一起来看一下Flask的图形化管理界面搭建框架Flask-Admin的使用教程
官网:https://flask-admin.readthedocs.io/en/latest/
自己闲来无事,写了一个demo版.实现了简单的CRUD功能+flask-login的登录功能,
网上的介绍五花八门,本文是从0-->1,适合首次学习的人.
不定期更新:细节介绍慢慢写(2021-03-25)
项目结构:
直接上代码:
1.models.py
介绍:
from mongoengine import *
from flask_admin.contrib.mongoengine import ModelView
from flask_login import UserMixin
# flask_login
class Users(UserMixin):
def __init__(self): # 最好从数据库获取,或使用加密方式获取,这里只简单示例
self.id = 1
self.username = 'Tom'
self.password = '111111'
def get_id(self):
return self.id
@staticmethod
def get(user_id):
"""try to return user_id corresponding User object.
This method is used by load_user callback function
"""
if not user_id:
return None
try:
if user_id == 'Tom': # 最好从文件或数据库读取id(这里为简单写死了)
return Users()
except:
return None
return None
class User(Document):
# required为True则必须赋予初始值
email = StringField(required=True)
first_name = StringField(max_length=50)
last_name = StringField(max_length=50)
meta = {'collection': 'tmp'}
class Post(Document):
title = StringField(max_length=120, required=True)
author = ReferenceField(User)
meta = {'allow_inheritance': True}
class TextPost(Post):
content = StringField()
params = StringField()
class PostView(ModelView):
column_list = ('id', 'params', 'content')
column_labels = {
'id': '主键',
'params': '参数',
}
column_searchable_list = ['params', 'content']
can_create = False
can_edit = False
can_delete = False
can_view_details = False
can_export = True
export_types = ['csv', 'txt']
page_size = 20
can_set_page_size = True
class MenuView(ModelView):
column_list = ('id', 'params', 'stat