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.
flask项目结构(六)快速开发后台flask-admin的更多相关文章
- flask项目结构(二)创建flask,同步docker
简介: 建立flask容易,那么部署就比较麻烦了,配这个,配那个,更新………… 所以我从构建,就考虑部署的问题,使用docker部署. 程序都打包进docker,本博客有相关文章. pycharn直接 ...
- 一个比较良好的flask项目结构
一个比较良好的flask项目结构 project/ app/ # 整个程序的包目录 static/ # 静态资源文件 js/ ...
- flask项目结构(四)使用sqlalchemy和alembic
简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...
- flask项目结构(三)使用蓝图
简介: Flask中的蓝图旨在针对这些情况: 把一个应用分解成一系列的蓝图.对于大型的应用是理想化的:一个项目能实例化一个应用, 初始化一些扩展,以及注册一系列的蓝图. 以一个 URL 前缀和/或子域 ...
- python flask 项目结构
1. 今天学习遇到一个问题,以前项目比较简单,所有的@app.route 都是写在一个文件app.py 中的,然后启动也是在这个文件中启动app.run .但是我今天 想写一个新的模块, 于是我新启了 ...
- flask项目结构(一)mariadb
简介: 本文主要是根据自己所学,创建一个flask项目,使用sqlalchemy,alembic,mariadb,bootstrap,APScheduler,selenium,request…………技 ...
- 面试简历书写、Flask框架介绍与快速使用、Flask演示登录页面、用户信息页面案例
今日内容概要 面试简历编写 Flask框架介绍与安装 内容详细 1.面试简历编写 # 千万不要几个小时把简历凑出来 几天到一周 # 有没有面试机会,取决于简历写得怎么样 简历写好是第一步 # 投简历的 ...
- flask项目结构(五)使用数据库
简介: 基础搭建好了,开始读写数据库吧.毕竟写的程序,也没什么高深的,就是CRUD,中文说是增删改查. 一:在数据库中增加测试数据. 在项目根目录建立init_test.py from config ...
- Flask 项目结构(仅供参考)
project/ app/ # 整个程序的包目录 static/ # 静态资源文件 js/ # JS脚本 css/ # 样式表 img/ # 图片 favicon.ico # 网站图标 templat ...
随机推荐
- mui体验理解
1. mui简介 1.1 缘起 1.基于jq的jqmobile,性能低的无法忍受,且UI难看 2.bootstrap这种响应式设计,性能在低端机不足,而且UI风格一看就是网页,不是App的 ...
- Linux 各种软件的安装-mysql篇
作为一个长期混迹在windows圈的小白,当拿到一个新的linux服务器时,有点手足无措的赶脚.但是万事开头难嘛,Just Do It! 下面记录一下自己安装各种软件时遇到的坑.这一篇先讲mysql ...
- The MySQL Server
mysqld is the MySQL server. configuring the server. The mysql server, mysqld,has many command option ...
- Wireshark 文件分割和合并
# 捕获文件的基本信息. capinfos <filename> 从结果中可以看到 http.pcapng 捕获文件的基本信息,包括文件类型.封装.包大小限制.包数.文件大小及时间等. # ...
- uva10564
路径条数很好找.记录最小路径,就记录到各点的最小字符串,存储起来. #include <iostream> #include <cstdio> #include <cma ...
- Centos7 下coreseek的安装
Coreseek介绍: Sphinx默认不支持中文索引及检索,基于Sphinx开发了Coreseek 全文检索服务器,Coreseek应该是现在用的最多的Sphinx中文全文检索,它提供了为Sphin ...
- vue的优点
vue-router 单页面 虚拟DOM https://www.cnblogs.com/oldboyooxx/p/9186482.html
- Redis之下载安装及基本使用
redis window系统的redis是微软团队根据官方的linux版本高仿的 官方原版: https://redis.io/ 中文官网:http://www.redis.cn 1.1 redis下 ...
- Alyona and a tree CodeForces - 739B (线段树合并)
大意: 给定有根树, 每个点$x$有权值$a_x$, 对于每个点$x$, 求出$x$子树内所有点$y$, 需要满足$dist(x,y)<=a_y$. 刚开始想错了, 直接打线段树合并了..... ...
- 笔记react router 4(三)
上一篇我们说到了路由组件的嵌套.想必你已经运用自如了.那么,这一次我们来聊一聊4.X中Router的变更. 在3.X中我们若使用路由的模式,可通过在Router上配置history的值即可. 例如, ...