Flask的图形化管理界面搭建框架Flask-Admin的使用教程

931次阅读  |  发布于5年以前

Flask-Admin是Flask框架的一个扩展,用它能够快速创建Web管理界面,它实现了比如用户、文件的增删改查等常用的管理功能;如果对它的默认界面不喜欢,可以通过修改模板文件来定制;
Flask-Admin把每一个菜单(超链接)看作一个view,注册后才能显示出来,view本身也有属性来控制其是否可见;因此,利用这个机制可以定制自己的模块化界面,比如让不同权限的用户登录后看到不一样的菜单;

项目地址:https://flask-admin.readthedocs.io/en/latest/

example/simple
这是最简单的一个样例,可以帮助我们快速、直观的了解基本概念,学会定制Flask-Admin的界面
simple.py:


    from flask import Flask

    from flask.ext import admin


    # Create custom admin view
    class MyAdminView(admin.BaseView):
      @admin.expose('/')
      def index(self):
        return self.render('myadmin.html')


    class AnotherAdminView(admin.BaseView):
      @admin.expose('/')
      def index(self):
        return self.render('anotheradmin.html')

      @admin.expose('/test/')
      def test(self):
        return self.render('test.html')


    # Create flask app
    app = Flask(__name__, template_folder='templates')
    app.debug = True

    # Flask views
    @app.route('/')
    def index():
      return '<a href="/admin/">Click me to get to Admin!</a>'

    # Create admin interface
    admin = admin.Admin()
    admin.add_view(MyAdminView(category='Test'))
    admin.add_view(AnotherAdminView(category='Test'))
    admin.init_app(app)

    if __name__ == '__main__':

      # Start app
      app.run()

在这里可以看到运行效果

BaseView

所有的view都必须继承自BaseView:

复制代码 代码如下:

class BaseView(name=None, category=None, endpoint=None, url=None, static_folder=None, static_url_path=None)

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8