zoukankan      html  css  js  c++  java
  • 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 #1 (redirect back to index_view)
    url_for('user.edit_view', id=1, url=url_for('user.index_view'))

    引用ModelView实例时,在调用url_for时使用模型的小写名称作为前缀。 其他视图可以通过为每个视图指定唯一的端点并将其用作前缀来引用。 所以,你可以使用:

    url_for('analytics.index')

    指向以下的视图:

    admin.add_view(CustomView(name='Analytics', endpoint='analytics'))
  • 相关阅读:
    删除List集合中的元素你碰到过这样的陷阱吗?
    从spring框架中的事件驱动模型出发,优化实际应用开发代码
    SpringBoot启动原理及相关流程
    基于SpringBoot实现定时任务的设置(常用:定时清理数据库)
    C#开发中常用的加密解密方法
    http://go.microsoft.com/fwlink/?linkid问题
    移动端开发必须知道的小技巧
    工作中遇到的细节问题总结(二)
    redis分布式锁和消息队列
    join和wait
  • 原文地址:https://www.cnblogs.com/minsons/p/8143904.html
Copyright © 2011-2022 走看看