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

下面是详细讲解 Flask-Admin 工具的使用教程:

一、Flask-Admin 简介

Flask-Admin 是一个为 Flask 应用程序提供图形化管理界面的插件。Flask-Admin 可以轻松添加表单、搜索、过滤以及图表等多种功能,并提供各种插件,方便开发人员快速开发管理页面。

二、安装 Flask-Admin

首先,我们需要通过 pip 安装 Flask-Admin 插件,可以通过以下命令来完成:

pip install flask-admin

三、创建 Flask-Admin 对象

在 Flask-Admin 中使用的核心对象是 Admin 对象,要使用该对象,我们首先需要从 flask_admin 模块中导入:

from flask_admin import Admin

然后,我们可以创建 Admin 对象,并将该对象与应用程序实例相关联:

admin = Admin(app, name='My App', template_mode='bootstrap3')

其中,参数说明如下:

  • app:应用程序实例
  • name:管理界面的名称
  • template_mode:使用的模板风格

四、添加 ModelView

在使用 Flask-Admin 的过程中,我们需要为每个模型添加一个 ModelView,用于管理模型的添加、编辑、删除等操作。通过继承 ModelView 类,我们可以自定义模型的管理页面,例如增加新的字段,更改表单的各个组件等。

以下是一个示例,显示如何使用 ModelView 来添加对 User 模型的管理页面:

from flask_admin.contrib.sqla import ModelView

class MyUserView(ModelView):
    column_searchable_list = ['username', 'email']

admin.add_view(MyUserView(User, db.session))

这里,我们使用 MyUserView 类来管理 User 模型,并将其添加到 Admin 对象中。

MyUserView 类中,我们使用 column_searchable_list 属性指定了哪些列将用于搜索,并在添加 User 模型时,使用 db.session 参数将数据库会话与 ModelView 关联起来。

五、在应用程序中启动 Flask-Admin

最后,我们在应用程序中启动 Flask-Admin,并将其绑定到一条路由上:

if __name__ == '__main__':
    admin = Admin(app, name='My App', template_mode='bootstrap3')
    admin.add_view(MyUserView(User, db.session))

    app.run(debug=True)

这里,我们添加了对 MyUserView 的引用,并在应用程序中启动了 Flask-Admin。

六、示例1:使用 Flask-Admin 管理博客

以下是一个示例说明,展示如何使用 Flask-Admin 管理博客:

首先,导入需要的模块:

from flask_admin.contrib.sqla import ModelView
from flask_admin import Admin
from flask import Flask, render_template, url_for, redirect
from flask_sqlalchemy import SQLAlchemy

然后,创建应用程序实例,以及数据库设置:

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret-key-goes-here'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

接着,定义 BlogPost 模型:

class BlogPost(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)
    author = db.Column(db.String(20), nullable=False)
    date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)

    def __repr__(self):
        return 'BlogPost ' + str(self.id)

接下来,定义 BlogPostModelView

class BlogPostAdminView(ModelView):
    column_searchable_list = ['title', 'content', 'author']
    column_filters = ['author', 'date_posted']
    form_columns = ['title', 'content', 'author']
    page_size = 10

这里,我们定义了列搜索、列过滤以及表单列等参数。

然后,将 BlogPostAdminView 添加到 Admin 对象中:

admin = Admin(app, name='Blog Admin')
admin.add_view(BlogPostAdminView(BlogPost, db.session))

最后,在应用程序中启动 Flask-Admin:

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

在启动后,访问 http://localhost:5000/admin 可以查看博客管理界面。

示例2:使用 Flask-Admin 管理电影院

以下是另一个示例,展示如何使用 Flask-Admin 管理电影院:

首先,导入需要的模块:

from datetime import datetime
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask import Flask, render_template, url_for, redirect
from flask_sqlalchemy import SQLAlchemy

然后,创建应用程序实例、数据库设置以及模型:

app = Flask(__name__)
app.secret_key = '1234'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///movies.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

class Movie(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(80), nullable=False)
    director = db.Column(db.String(80), nullable=False)
    year = db.Column(db.Integer(), nullable=False)
    created_at = db.Column(db.DateTime(), nullable=False, default=datetime.utcnow)

接下来,定义 MovieModelView

class MovieView(ModelView):
    column_searchable_list = ['title', 'director', 'year']
    column_filters = ['year']
    form_columns = ['title', 'director', 'year']

这里,我们定义了列搜索、列过滤以及表单列等参数。

然后,将 MovieView 添加到 Admin 对象中:

admin = Admin(app)
admin.add_view(MovieView(Movie, db.session))

最后,在应用程序中启动 Flask-Admin:

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

在启动后,访问 http://localhost:5000/admin 可以查看电影院管理界面。

以上是 Flask-Admin 的使用教程,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Flask的图形化管理界面搭建框架Flask-Admin的使用教程 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程

    一、介绍 Flask-Migrate是Flask框架中的一个扩展,用于数据库迁移。在使用Flask时,为了保证数据结构和表与每个环境中的需求的一致性,需要在更新迭代时改变数据库结构。 二、安装 在开始使用Flask-Migrate之前,需要先安装。 1.使用pip安装 pip install Flask-Migrate 2.在requirements.txt…

    Flask 2023年5月15日
    00
  • python之sqlalchemy创建表的实例详解

    首先,需要明确的是SQLAlchemy是一个Python编写的关系型数据库框架,可以方便地对数据库进行操作。在这样一个框架中创建表格非常容易,下面我将详细介绍如何使用SQLAlchemy创建一个表格。 环境搭建 在开始创建表格之前,你需要先安装SQLAlchemy模块。可以在命令行中输入以下命令安装: pip install sqlalchemy 依赖库安装…

    Flask 2023年5月16日
    00
  • flask解析海康摄像头视频的使用

    首先,需要明确一下什么是Flask。Flask是一个基于Python的轻量级Web框架,开发者可以使用Flask快速构建Web应用程序。这里将介绍如何使用Flask解析海康摄像头视频。 步骤一:安装Flask和相关依赖 在开始之前,需要先安装Flask以及相关依赖。可以使用pip安装,执行以下命令: pip install flask flask-cors …

    Flask 2023年5月16日
    00
  • flask上使用websocket的方法示例

    下面是关于“flask上使用websocket的方法示例”的完整攻略。 什么是WebSocket? WebSocket是一种基于TCP协议的新型网络通信协议,相比HTTP协议,它具有以下优点: 长连接:WebSocket是一种长连接,可以实时的双向通讯,我们不需要反复的建立连接和释放连接,节省了很多浏览器和服务器的开销。 实时性:WebSocket具有实时通…

    Flask 2023年5月16日
    00
  • Flask-蓝图 blueprint详情

    Flask-蓝图(blueprint)是Flask框架的一个重要概念,常用于将一个大型应用切割成多个模块,分别进行开发和维护,提高了代码的可维护性和可读性。在本文中,我们将详细讲解Flask-蓝图的各种细节,并介绍两个简单的示例说明。 什么是Flask-蓝图(blueprint) Flask-蓝图(blueprint)是Flask框架中一个可重用的程序组件。…

    Flask 2023年5月16日
    00
  • python flask实现分页效果

    下面我就为你详细讲解一下“Python Flask实现分页效果”的攻略。为了更好地说明,我会包含两条示例,分别是使用flask_sqlalchemy和flask_mongoengine实现分页效果。 1. 创建Flask应用 首先,我们要创建一个基本的Flask应用。在创建之前,需要先安装flask: pip install flask 下面是一个简单的示例…

    Flask 2023年5月15日
    00
  • Python 强大的信号库 blinker 入门详细教程

    Python 强大的信号库 blinker 入门详细教程 1. 什么是 blinker blinker 是 Python 中一个强大的信号(Signal)处理库,它可以帮助我们更加方便地处理信号和槽机制,实现不同函数间数据传递,类似于事件驱动机制。 2. 安装 blinker 我们可以使用 pip 工具来安装 blinker 库: pip install b…

    Flask 2023年5月16日
    00
  • Flask-WTF表单的使用方法

    Flask-WTF是一个在Flask中使用表单的第三方扩展程序,它可以帮助我们在Flask中方便地处理表单数据并进行验证,避免了手动处理表单数据的繁琐过程。下面是Flask-WTF表单的使用方法: 安装Flask和Flask-WTF 首先安装需要的扩展程序,可以通过pip安装: pip install Flask pip install Flask-WTF …

    Flask 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部