如何设置定制化的Flask-Admin主页界面?
- 内容介绍
- 文章标签
- 相关推荐
本文共计565个文字,预计阅读时间需要3分钟。
Flask 已成为长期使用的框架,通常配合 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, Userapp=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 已成为长期使用的框架,通常配合 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, Userapp=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 %}
这里使用了模板和嵌套。

