如何设置定制化的Flask-Admin主页界面?

2026-06-11 10:401阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计565个文字,预计阅读时间需要3分钟。

如何设置定制化的Flask-Admin主页界面?

Flask 已成为长期使用的框架,通常配合 Flask-Admin 进行后台管理设置。Flask-Admin 的配置大多需要自行添加,以便对特定模型进行管理。以下是如何定制 Flask-Admin 首页的简单介绍:

首先,引入 Flask-Admin,并按照以下步骤进行配置:

如何设置定制化的Flask-Admin主页界面?

1. 在 Flask 应用中安装 Flask-Admin。

2.创建一个 Admin 实例,并将其注册到 Flask 应用中。

3.为需要管理的模型定义模型视图。

4.通过模板自定义首页内容。

例如,可以这样写:

python

from flask import Flaskfrom flask_admin import Adminfrom flask_admin.contrib.sqla import ModelViewfrom myapp import db, User

app=Flask(__name__)app.config['SECRET_KEY']='your-secret-key'app.config['SQLALCHEMY_DATABASE_URI']='your-database-uri'

db.init_app(app)admin=Admin(app, name='MyAdmin', template_mode='bootstrap3')

自定义首页模板admin.index_view=MyCustomIndexView()

添加模型视图admin.add_view(ModelView(User, db.session))

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

其中,`MyCustomIndexView` 是自定义的首页视图类,可以继承 `flask_admin.base.View` 并重写 `render` 方法来自定义首页内容。

flask也用了很久了,一般配合flask-admin设置后台。

但是flask-admin设置的都是自己加入的,对某些model进行管理。

下面介绍如何定制flask-admin的首页。

原来我们引入flask-admin

是这么写的

admin = Admin(app)

现在要写更多参数了。

例1:
admin = Admin( app, name=‘导航管理‘, index_view=MyAdminIndexView(name=‘预览页‘), template_mode=‘bootstrap3‘ )

继续查看源码

self.index_view = index_view or AdminIndexView(endpoint=endpoint, url=url)

继续看例1的index_view,我使用了自定义类MyAdminIndexView,其实它是继承自AdminIndexView。

class MyAdminIndexView(AdminIndexView): @expose(‘/‘) def default(self): plan = [ { ‘date‘: ‘20171212‘, ‘train‘: ‘T198‘, ‘track‘: ‘8‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T199‘, ‘track‘: ‘9‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T197‘, ‘track‘: ‘7‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T196‘, ‘track‘: ‘6‘ } ]
  return self.render(‘admin.html‘, plans = plan)

注意:平时我们用的都是

return render_template(‘admin.html‘)

在flask-admin中,我们使用

return self.render(‘admin.html‘, plans = plan)

另附admin.html

{% extends ‘admin/index.html‘ %} {% block body %} Hello World from MyView! {% for plan in plans %} {{ plan.date }} {{ plan.train }} {{ plan.track }} <br> {% endfor %} {% endblock %}

这里使用了模板和嵌套。

本文共计565个文字,预计阅读时间需要3分钟。

如何设置定制化的Flask-Admin主页界面?

Flask 已成为长期使用的框架,通常配合 Flask-Admin 进行后台管理设置。Flask-Admin 的配置大多需要自行添加,以便对特定模型进行管理。以下是如何定制 Flask-Admin 首页的简单介绍:

首先,引入 Flask-Admin,并按照以下步骤进行配置:

如何设置定制化的Flask-Admin主页界面?

1. 在 Flask 应用中安装 Flask-Admin。

2.创建一个 Admin 实例,并将其注册到 Flask 应用中。

3.为需要管理的模型定义模型视图。

4.通过模板自定义首页内容。

例如,可以这样写:

python

from flask import Flaskfrom flask_admin import Adminfrom flask_admin.contrib.sqla import ModelViewfrom myapp import db, User

app=Flask(__name__)app.config['SECRET_KEY']='your-secret-key'app.config['SQLALCHEMY_DATABASE_URI']='your-database-uri'

db.init_app(app)admin=Admin(app, name='MyAdmin', template_mode='bootstrap3')

自定义首页模板admin.index_view=MyCustomIndexView()

添加模型视图admin.add_view(ModelView(User, db.session))

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

其中,`MyCustomIndexView` 是自定义的首页视图类,可以继承 `flask_admin.base.View` 并重写 `render` 方法来自定义首页内容。

flask也用了很久了,一般配合flask-admin设置后台。

但是flask-admin设置的都是自己加入的,对某些model进行管理。

下面介绍如何定制flask-admin的首页。

原来我们引入flask-admin

是这么写的

admin = Admin(app)

现在要写更多参数了。

例1:
admin = Admin( app, name=‘导航管理‘, index_view=MyAdminIndexView(name=‘预览页‘), template_mode=‘bootstrap3‘ )

继续查看源码

self.index_view = index_view or AdminIndexView(endpoint=endpoint, url=url)

继续看例1的index_view,我使用了自定义类MyAdminIndexView,其实它是继承自AdminIndexView。

class MyAdminIndexView(AdminIndexView): @expose(‘/‘) def default(self): plan = [ { ‘date‘: ‘20171212‘, ‘train‘: ‘T198‘, ‘track‘: ‘8‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T199‘, ‘track‘: ‘9‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T197‘, ‘track‘: ‘7‘ }, { ‘date‘: ‘20171212‘, ‘train‘: ‘T196‘, ‘track‘: ‘6‘ } ]
  return self.render(‘admin.html‘, plans = plan)

注意:平时我们用的都是

return render_template(‘admin.html‘)

在flask-admin中,我们使用

return self.render(‘admin.html‘, plans = plan)

另附admin.html

{% extends ‘admin/index.html‘ %} {% block body %} Hello World from MyView! {% for plan in plans %} {{ plan.date }} {{ plan.train }} {{ plan.track }} <br> {% endfor %} {% endblock %}

这里使用了模板和嵌套。