簡介:
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'))