简介:
Flask-admin 相当django的xadmin吧!
快速装配一个后台用来管理数据。
Flask-admin也是有使用局限性的,他只适合开发小型快速的应用,不适合那种大型并发性高,逻辑复杂的应用。首先,对于大型应用都是前后端分离的,加快访问速度,而且后端装配,尤其是这种动态生成页面的速度更慢。
需要安装Flask-Admin,Flask-BabelEx,
一:导入admin
1.导入
from flask import Flask
from app.main.views import *
from app.app01.views import *
from app.app02.views import *
from flask_admin import Admin #此行新加 app = Flask(__name__) admin = Admin(app, name='管理后台', template_mode='bootstrap3') #此行新加 app.register_blueprint(main)
app.register_blueprint(main,url_prefix='/index')
app.register_blueprint(app01,url_prefix='/app01')
app.register_blueprint(app02,url_prefix='/app02')
app.register_blueprint(app01,url_prefix='/app03')
app.register_blueprint(app02,url_prefix='/app04')
app.register_blueprint(app02) @app.teardown_appcontext
def shutdown_session(exception=None):
db_session.remove() if __name__=='__main__':
app.run()
只要增加这两行就可以了。
2.测试
访问http://127.0.0.1:5000/admin/
就可以看到了。
3.中文标题
admin = Admin(app, name='管理后台', template_mode='bootstrap3') #此行新加
这里的name就是后台的标题。
二:注册model
1.引入:
from flask_admin.contrib.sqla import ModelView
页首引入即可
2.注册model
admin.add_view(ModelView(public, db_session,name='test'))
一行引入一个model,既表。
public是声明的model类名。
db_session,是在config中声明的数据库连接。
name是小标题。
3.测试:
比刚才多了一个public
点进去以后
有创建,修改,删除这样的功能。
三:汉化
1.引入Flask-BabelEx
from flask_babelex import Babel
2.设置
babel = Babel(app)
app.config['BABEL_DEFAULT_LOCALE'] = 'zh_CN'
在app = Flask(__name__)后面插入就可以了
3.测试
四:把表名改中文
1.原代码:
admin.add_view(ModelView(public, db_session))
2.新代码:
admin.add_view(ModelView(public, db_session,name='用户管理'))
3.说明:
在注册表给后台的时候,加上name属性,就改为中文了。
五:把列名改为中文
1.简介:
我们的列名是ModelView自动读取的,如果要修改列名,那么我们就新建一个类继承ModelView,然后在我们的类中修改。
2.建立:
class MyPublic(ModelView): column_labels = {
'id':'序号',
'public_name' : '用户名',
'public_email':'电子邮箱',
}
column_list = ('id', 'public_name','public_email')
def __init__(self, session, **kwargs):
super(MyPublic, self).__init__(public, session, **kwargs)
为了方便对照model,我把这部分代码和model声明放在一起了。
3.修改
因为是每个表都要分开设置列名,使用新的继承类对应不同的表。所以,引入方式也要修改。
原代码:
admin.add_view(ModelView(public,db_session,name='用户管理'))
新代码:
admin.add_view(MyPublic(db_session,name='用户管理'))
说明:
我们新建的类已经继承了ModelView,并在内部关联了public类,所以注册的时候要改ModeView为MyPublic,并不需要声明表名类了。
六:菜单下拉
1.
# Add views
admin.add_view(ModelView(Point, db.session, category='Points'))
admin.add_view(ModelView(MultiPoint, db.session, category='Points'))
admin.add_view(ModelView(Polygon, db.session, category='Polygons'))
admin.add_view(ModelView(MultiPolygon, db.session, category='Polygons'))
admin.add_view(ModelView(LineString, db.session, category='Lines'))
admin.add_view(ModelView(MultiLineString, db.session, category='Lines'))