flask_admin 笔记五 内置模板设置
内建模板
Flask-Admin是使用jinja2模板引擎
1)扩展内建的模板
不要完全覆盖内置的模板,最好是扩展它们。 这将使您更容易升级到新的Flask-Admin版本。
在内部,Flask-Admin模板是从admin / master.html模板派生的。 三个最有趣的扩展模板可能是:
- admin/model/list.html
- admin/model/create.html
- admin/model/edit.html
为了扩展默认的编辑模板功能,你可以创建一个模板templates/micrblog_edit.html 去代替它:
{% extends 'admin/model/edit.html' %}
{% block body %}
<h1>MicroBlog Edit View</h1>
{{ super() }}
{% endblock %}
接着,需要视图类使用这个模板,需设置属性:
class MicroBlogModelView(ModelView):
edit_template = 'microblog_edit.html'
# create_template = 'microblog_create.html'
# list_template = 'microblog_list.html'
如果您想使用自己的基本模板,则在初始化期间将模板的名称传递给管理构造函数:
admin = Admin(app, base_template='microblog_master.html')
2)重写内置的模板
要完全控制管理界面的样式和布局,可以覆盖所有内置模板。 请记住,从Flask-Admin的一个版本到下一个版本的模板会略有变化,所以一旦你开始覆盖它们,你需要小心升级你的软件包版本。
要覆盖任何内置模板,只需将它们从Flask-Admin源代码复制到项目的templates/admin /目录中即可。 只要文件名保持不变,项目目录中的模板应该自动优先于内置模板。
3)可用的模板块
Flask-Admin在admin / master.html中定义了一个基本模板,即所有其他管理模板都是从其派生的。 该模板是指向admin / base.html的代理,它定义了以下块:
|
模块名 |
描述 |
|
Head_meta |
头部标签 |
|
title |
标题 |
|
Head_css |
头部存放样式 |
|
head |
头部其他内容 |
|
Page_body |
页面布局 |
|
brand |
菜单的商标 |
|
Main_menu |
菜单 |
|
Menu_links |
菜单链接 |
|
Access_control |
菜单右边的登录按钮 |
|
message |
提醒的信息 |
|
body |
内容区 |
|
tail |
内容区下面的区域 |
除了从admin / master.html继承的所有块之外,admin / model / list.html模板还包含以下块:
|
Block Name |
Description |
|
model_menu_bar |
Menu bar |
|
model_list_table |
Table container |
|
list_header |
Table header row |
|
list_row_actions_header |
Actions header |
|
list_row |
Single row |
|
list_row_actions |
Row action cell with edit/remove/etc buttons |
|
empty_list_message |
Message that will be displayed if there are no models found |
查看https://github.com/flask-admin/flask-admin/tree/master/examples/layout上的布局示例,了解如何对管理界面进行全面的风格控制。
4)环境变量
在扩展admin / master.html的任何模板中工作时,您都可以访问少量的环境变量:
|
Variable Name |
Description |
|
admin_view |
Current administrative view |
|
admin_base_template |
Base template name |
|
_gettext |
Babel gettext |
|
_ngettext |
Babel ngettext |
|
h |
Helpers from helpers module |
5)产生url链接
要生成特定视图的网址,请使用带点前缀的url_for:
from flask import url_for
class MyView(BaseView):
@expose('/')
def index(self):
# Get URL for the test view method
user_list_url = url_for('user.index_view')
return self.render('index.html', user_list_url=user_list_url)
一个特定的记录也可以引用:
# Edit View for record # (redirect back to index_view)
url_for('user.edit_view', id=, url=url_for('user.index_view'))
引用ModelView实例时,在调用url_for时使用模型的小写名称作为前缀。 其他视图可以通过为每个视图指定唯一的端点并将其用作前缀来引用。 所以,你可以使用:
url_for('analytics.index')
指向以下的视图:
admin.add_view(CustomView(name='Analytics', endpoint='analytics'))
flask_admin 笔记五 内置模板设置的更多相关文章
- Django 内置模板标签和过滤器
一.内置模板标签 语法:{% %} autoescape : 是否转义,on或off作为参数,并确定自动转义是否在块内有效.该块以endautoescape结束 {% autoescape on % ...
- springboot-为内置tomcat设置虚拟目录
需求 项目使用springboot开发,以jar包方式部署.项目中文件上传均保存到D判断下的upload目录下. 在浏览器中输入http://localhost:8080/upload/logo_1. ...
- VS2019 开发Django(九)------内置模板和过滤器
导航:VS2019开发Django系列 紧接上篇,继续介绍Django中的模板,考虑可能篇幅过长,所以分为两部分来讲,今天的主要内容: 1)内置模板和过滤器 母版,继承关系.头部导航和页脚,是需要与其 ...
- Python进阶(五)----内置函数Ⅱ 和 闭包
Python进阶(五)----内置函数Ⅱ 和 闭包 一丶内置函数Ⅱ ####内置函数#### 特别重要,反复练习 ###print() 打印输入 #sep 设定分隔符 # end 默认是换行可以打印到 ...
- python3之Django内置模板标签和过滤器
一.模板标签 内置标签: 1.autoescape 控制当前的自动转义行为,此标记采用on或者off作为参数,并确定自动转义是否在块内有效.该块以endautoescape结束标签关闭. views: ...
- [terry笔记]python内置函数
总结一下内置函数,Build-in Function. 一.数学运算类 abs(x) 求绝对值 complex([real[, imag]]) 创建一个复数 divmod(a, b) 分别取商和余数注 ...
- python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)
内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...
- java web 学习笔记 jsp内置对象
jsp2 表达式语言的内置对象 使用方式${object.attributename} 或者${object["attributename"]} pageContext pageS ...
- Django内置模板标签
Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...
随机推荐
- 用于创建和管理 Azure 虚拟机的常用 PowerShell 命令
本文介绍一些可用于在 Azure 订阅中创建和管理虚拟机的 Azure PowerShell 命令. 若要获取特定命令行开关和选项的详细帮助,可以使用 Get-Help 命令. 有关安装最新版 Azu ...
- git命令:全局设置用户名邮箱配置
1.查看git配置信息 git config --list 2.查看git用户名 git config user.name 3.查看邮箱配置 git config user.email 4.全局配置用 ...
- ping 命令 指定特定网卡 发送 ICMP 数据包
Windows : ping -S Linux : ping -I <device> -I interface interface is either an address, or an ...
- Active Directory、Exchange、单点登录,企业账号统一管理解决方案
现在的公司一般都会有很多内部管理系统,比如OA.ERP.CRM.邮件系统等.员工入职之后如果每个系统都创建一个账号和密码,首先员工记系统账号就是一件非常头疼的事情,如果公司有一百个系统那就得创建一百个 ...
- centos httpd开启https服务并申请免费https
安装httpd yum -y install httpd httpd配置文件路径 /etc/httpd/conf/httpd.conf 安装OpenSSL yum install mod_ssl o ...
- 团队作业——Alpha冲刺 6/12
团队作业--Alpha冲刺 冲刺任务安排 杨光海天 今日任务:编辑界面完成标题栏的开发,以及与已经完成gallery开发的同学,商讨我负责的界面中,图片滑动的具体措施. 明日任务:除了图像识别内容嵌入 ...
- [题目] Luogu P3716 [CTSC2000]冰原探险
题面 题目背景 传说中,南极有一片广阔的冰原,在冰原下藏有史前文明的遗址.整个冰原被横竖划分成了很多个大小相等的方格.在这个冰原上有N个大小不等的矩形冰山,这些巨大的冰山有着和南极一样古老的历史,每个 ...
- win10管理员已阻止你运行此应用”解决方法
方法/步骤 1 按WIN+R键,打开“运行”,然后输入“gpedit.msc",就是打开组策略,这个在控制面板中也可以打开. 2 在组策略里找到“计算机配置”-“Windows设置”-“安全 ...
- Docker技术入门与实战 第二版-学习笔记-6-仓库
仓库(Repository)是集中存放镜像的地方 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像. ...
- 为什么web3 1.0 的接口有personal_*和eth_*的,两者有什么不同
看https://github.com/ethereum/EIPs/pull/712 Why personal_* namespace instead of eth_* namespace? I be ...