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.#
#
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/9530485.html
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!