Flask-Nav Bootstrap导航栏,动态构造:将一些元素与右侧对齐

时间:2016-04-08 16:48:40

标签: python html twitter-bootstrap web-applications flask

我目前正在创建基于Flask,Bootstrap和Flask-Nav扩展的WebApp。 我创建了一个动态导航栏,它可以正常工作:

#custom navbar
def dynamic_navbar():
    navbar = Navbar(title='navbar_titel')
    navbar.items = [View('FirstPage', 'first_page')]   
    navbar.items.append(
    Subgroup('Dropdown1',
        View('Sub1', 'sub1_page'),
        View('Sub2', 'sub2_page'),
        View('Sub3', 'sub3_page')
                    )
            )       
    navbar.items.append(View('SecondPage', 'second_page'))
    return navbar

#register navbar to app    
nav.register_element('top', dynamic_navbar)

我还更改了默认的BootstrapRenderer,这样我就可以轻松更改导航栏引导程序模板

#Coustom Navbar Renderer to render after certain bootstrap navbars templates

class CustomRenderer(BootstrapRenderer):
    def visit_Navbar(self, node):
        nav_tag = super(CustomRenderer, self).visit_Navbar(node)
        nav_tag['class'] += 'navbar navbar-inverse'
        return nav_tag


#register renderer to app
register_renderer(app, 'custom', CustomRenderer)

这一切都运行正常,我可以轻松地将它整合到我的主模板中作为一个块:

{% extends "bootstrap/base.html" %}

{% block navbar %}
{{nav.top.render(renderer='custom')}}
{% endblock %}

{% block content %}{% endblock %}

所以这是最后的问题。我想将导航栏内部的一些元素(而不是所有元素)向右对齐(例如:仅查看(Sub3 ...)。我知道如何直接在HTML文档中执行此操作,但不知何故有难以思考在我的Flask应用程序中执行此操作的简单方法,而不会失去动态导航栏构造或创建许多新类。

我可以更轻松地更改渲染器或创建View元素的子类吗?

0 个答案:

没有答案