【Flask】关于Flask-Admin的一些坑及避开技巧
来源:互联网 发布:淘宝负责人电话号码 编辑:程序博客网 时间:2024/05/16 04:52
概述
在使用Flask-Admin开发后台应用的时候,会遇到Flask-admin的一些坑,这篇是记录这些坑并且如何灵巧的避开。
坑一:无法下载CSS(大文件)
我在把Flask部署到内网上的Linux服务器后,在苹果电脑上打开Falsk-Admin的后台应用,会发现有时候没有CSS样式表,而且有时候JS也没有下载下来,用浏览器调试时发现有关文件报了「」错误,我估计是因为文件太大(大约80KB)导致文件下载不下来。解决办法是把那些文件改用CDN,下面是一个避开此坑的方法:
创建my_base_view.html文件,改写Flask-Admin默认的base.html模板。
{# 继承base.html #}{% extends 'admin/base.html' %}{# 改写head_css #}{% block head_css %} {# <link href="{{ admin_static.url(filename='bootstrap/bootstrap2/css/bootstrap.css', v='2.3.2', _external=True) }}" rel="stylesheet"> #} <link href="http://cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.css" rel="stylesheet"> {# <link href="{{ admin_static.url(filename='bootstrap/bootstrap2/css/bootstrap-responsive.css', v='2.3.2', _external=True) }}" rel="stylesheet"> #} <link href="http://cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap-responsive.css" rel="stylesheet"> <link href="{{ admin_static.url(filename='admin/css/bootstrap2/admin.css', v='1.1.1', _external=True) }}" rel="stylesheet"> <style> body { padding-top: 4px; } </style>{% endblock %}{# 改写tail_js #}{% block tail_js %} {# <script src="{{ admin_static.url(filename='vendor/jquery.min.js', v='2.1.4', _external=True) }}" type="text/javascript"></script> #} <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> {# <script src="{{ admin_static.url(filename='bootstrap/bootstrap2/js/bootstrap.min.js', v='2.3.2', _external=True) }}" type="text/javascript"></script> #} <script src="http://cdn.bootcss.com/bootstrap/2.3.2/js/bootstrap.min.js"></script> <script src="{{ admin_static.url(filename='vendor/moment.min.js', v='2.9.0', _external=True) }}" type="text/javascript"></script> <script src="{{ admin_static.url(filename='vendor/select2/select2.min.js', v='3.5.2', _external=True) }}" type="text/javascript"></script>{% endblock %}
之后设置admin的base_template
参数为该模板即可。
from flask_admin import Adminadmin = Admin(name=u'应用名称', base_template='my_base_view.html')
在Flask-Admin的视图页面中要显示大图片,但几乎下载不下来,也是这个原因。目前的办法是只能压缩图片,尽量小于80KB。
坑二:初始化视图不能放在create_app
里
Flask-Admin有add_view
视图函数,给admin添加视图的时候,不能放在create_app
里。虽然运行没有报错,但是在单元测试的时候会出现蓝本重复注册,正确的方法是在create_app
外面调用add_view
。
# 代码示例admin = Admin(name=u'应用名称')# 正确做法admin.add_view(ModelView(name='板块', category='标签'))def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) admin.init_app(app) # 不好的做法 #admin.add_view(ModelView(name='板块', category='标签')) return app
0 0
- 【Flask】关于Flask-Admin的一些坑及避开技巧
- Flask-admin 学习及一些笔记
- 【Flask】Flask中关于url_for()的坑
- 【Flask】Flask中关于url_for()的坑
- flask-admin
- Flask-admin使用经验技巧总结
- 【Flask】关于Flask的request属性
- Flask - admin 快速入门
- 关于Flask mega-tutorial遇到的一些问题-三(Flask_mail服务器及邮箱设置)
- flask-SQLAlchemy一些使用技巧(关联关系的创建)
- 写Flask应用时的一些优雅技巧
- Flask学习记录之Flask-Admin
- 【Flask】Flask-Admin修改成中文显示
- 学习flask web开发遇到的一些问题及解决方法
- flask 开发的坑
- flask关于数据库的错误
- 关于Flask的默认session
- 关于Flask的request属性
- 空洞般的生活
- hibernate与myBatis的优劣比较
- android JIN 第一步 生成java转换成class然后再转化成.h文件
- 平衡树之splay讲解
- Hello World !
- 【Flask】关于Flask-Admin的一些坑及避开技巧
- 用闭包实现高级排他
- [Linux]生产者与消费者 三种模型 C
- 学习C 的第四天
- 【C#】桥接模式
- 面向服务的架构SOA
- 属性动画入门
- 【JDBC】数据库事务
- Get-GUIDandDeclare