zoukankan      html  css  js  c++  java
  • flask项目结构(六)快速开发后台flask-admin

    简介:

    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'))

    2.

    3.

     

    七:

    1.

    2.

    3.

     

    八:

    1.

    2.

    3.

     

    九:

    1.

    2.

    3.

     

    十:

    1.

    2.

    3.

     

  • 相关阅读:
    《30天自制操作系统》笔记(10)——定时器
    《30天自制操作系统》笔记(09)——绘制窗口
    《30天自制操作系统》笔记(08)——叠加窗口刷新
    《30天自制操作系统》笔记(07)——内存管理
    《30天自制操作系统》笔记(06)——CPU的32位模式
    《30天自制操作系统》笔记(05)——启用鼠标键盘
    《30天自制操作系统》笔记(04)——显示器256色
    《30天自制操作系统》笔记(03)——使用Vmware
    《30天自制操作系统》笔记(02)——导入C语言
    《30天自制操作系统》笔记(01)——hello bitzhuwei’s OS!
  • 原文地址:https://www.cnblogs.com/jackadam/p/9530485.html
Copyright © 2011-2022 走看看