简介:

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的更多相关文章

  1. flask项目结构(二)创建flask,同步docker

    简介: 建立flask容易,那么部署就比较麻烦了,配这个,配那个,更新………… 所以我从构建,就考虑部署的问题,使用docker部署. 程序都打包进docker,本博客有相关文章. pycharn直接 ...

  2. 一个比较良好的flask项目结构

    一个比较良好的flask项目结构 project/ app/                    # 整个程序的包目录 static/                 # 静态资源文件 js/    ...

  3. flask项目结构(四)使用sqlalchemy和alembic

    简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...

  4. flask项目结构(三)使用蓝图

    简介: Flask中的蓝图旨在针对这些情况: 把一个应用分解成一系列的蓝图.对于大型的应用是理想化的:一个项目能实例化一个应用, 初始化一些扩展,以及注册一系列的蓝图. 以一个 URL 前缀和/或子域 ...

  5. python flask 项目结构

    1. 今天学习遇到一个问题,以前项目比较简单,所有的@app.route 都是写在一个文件app.py 中的,然后启动也是在这个文件中启动app.run .但是我今天 想写一个新的模块, 于是我新启了 ...

  6. flask项目结构(一)mariadb

    简介: 本文主要是根据自己所学,创建一个flask项目,使用sqlalchemy,alembic,mariadb,bootstrap,APScheduler,selenium,request…………技 ...

  7. 面试简历书写、Flask框架介绍与快速使用、Flask演示登录页面、用户信息页面案例

    今日内容概要 面试简历编写 Flask框架介绍与安装 内容详细 1.面试简历编写 # 千万不要几个小时把简历凑出来 几天到一周 # 有没有面试机会,取决于简历写得怎么样 简历写好是第一步 # 投简历的 ...

  8. flask项目结构(五)使用数据库

    简介: 基础搭建好了,开始读写数据库吧.毕竟写的程序,也没什么高深的,就是CRUD,中文说是增删改查. 一:在数据库中增加测试数据. 在项目根目录建立init_test.py from config ...

  9. Flask 项目结构(仅供参考)

    project/ app/ # 整个程序的包目录 static/ # 静态资源文件 js/ # JS脚本 css/ # 样式表 img/ # 图片 favicon.ico # 网站图标 templat ...

随机推荐

  1. CentOS/redhat使用光盘镜像源

    1,首先进行光盘的挂载,注意光盘挂载时不会自动建立目录的,    所以需要自己建立目录.    mkdir /mnt/cdrom    mount /dev/cdrom /mnt/cdrom  #de ...

  2. Ubuntu 16.04下docker ce的安装(待完善)

    参见:https://www.cnblogs.com/senlinyang/p/8203191.html https://blog.csdn.net/qq_34906391/article/detai ...

  3. 雷林鹏分享:XML 教程

    XML 教程 XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. XML 很重要,也很容易学习. 现在开始学习 XML! XML 文 ...

  4. p2751 Job Processing

    如果单单只安排过程1的时间最短,很容易算出来.用优先队列取最小,加上增量后再放回就行.对过程2也进行这样的操作.将过程1第一个完成的在过程2最后一个完成.以样例来说,过程1:1,1,2,2,3,过程2 ...

  5. Fiddler简介及web抓包

    1.Fiddler界面如下   2.Fiddler开关 界面左下角或点击F12控制Fiddler开关,开关是“Capturing”: 启动之后,Fiddler代理永远是开着的.     3.浏览器代理 ...

  6. thinkphp5.0写的项目放到服务器上 lnmp 404

    tp5在Nginx上不适用pathinfo格式的url,在项目的Nginx配置文件里找到include enable-php.conf 改为 include enable-php-pathinfo.c ...

  7. selenium 简单粗暴的定位方法

  8. Excel文件的读写

    import xlsxwriter,xlrd import sys,os.path fname = 'zm6.xlsx' if not os.path.isfile(fname): print ('文 ...

  9. spring boot(十六)使用Jenkins部署spring boot

    jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目 jenkins搭建 部署分为三个步骤: 第一步,jenkins安装 第二步,插件安装和配置 第 ...

  10. poj-2115-exgcd

    C Looooops Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32062   Accepted: 9337 Descr ...