Flask-Admin 入门实战

806 阅读2分钟

Flask-Admin 是一个 Flask 扩展,用于在 Flask 应用中添加一个简单而强大的管理界面。它使得开发者可以快速地为 Flask 应用创建后台管理界面,无需从头开始编写大量的管理代码。Flask-Admin 支持多种类型的视图,如列表视图、编辑视图、图表视图等,允许开发者对数据库中的数据进行增删改查等操作。

安装 Flask-Admin

要使用 Flask-Admin,首先需要通过 pip 安装它:

pip install flask-admin

基本使用

以下是一个简单的 Flask-Admin 示例,展示如何将其集成到 Flask 应用中:

  1. 初始化 Flask 应用和 Flask-Admin

首先,需要创建一个 Flask 应用,并初始化 Flask-Admin。

from flask import Flask
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask_sqlalchemy import SQLAlchemy

# 初始化 Flask 应用
app = Flask(__name__)

# 配置 SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

# 初始化 Flask-Admin
admin = Admin(app, name='Flask Admin Example')
  1. 定义数据库模型

使用 SQLAlchemy 定义数据库模型。

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)

    def __repr__(self):
        return f'<User {self.username}>'

db.create_all()
  1. 注册模型视图

将数据库模型注册到 Flask-Admin 中,以便在后台管理界面中显示。

# 注册 User 模型到 Flask-Admin
admin.add_view(ModelView(User, db.session))
  1. 运行 Flask 应用

现在,你可以运行 Flask 应用,并通过浏览器访问 Flask-Admin 提供的后台管理界面。

if __name__ == '__main__':
    app.run(debug=True)

默认情况下,Flask-Admin 的管理界面将运行在 http://127.0.0.1:5000/admin/

自定义和扩展

Flask-Admin 提供了丰富的 API 来自定义和扩展管理界面,包括但不限于:

  • 自定义视图:通过继承 ModelView 或其他视图类,并覆盖其方法来实现自定义视图。
  • 表单自定义:自定义表单字段、验证器等。
  • 模板自定义:通过 Flask 的模板系统来自定义 HTML 模板。
  • 权限控制:集成 Flask-Login 或其他认证扩展来控制访问权限。

Flask-Admin 是构建 Flask 应用后台管理界面的强大工具,能够极大地提升开发效率。