如何用flask-nav中的图像替换品牌文本

时间:2017-10-03 15:13:43

标签: python flask-bootstrap flask-nav

我通过导入flask-nav并使用以下内容在我的flask-bootstrap应用程序中显示了一个导航栏:

@nav.navigation()
def mynavbar():
    return Navbar(
        'MyCompany',
        View('Main', 'index'),
        View('Config', 'config'),
        View('Help', 'help')
    )

但我无法找到我的生活如何交换文字" MyCompany"对于图像,例如img / mylogo.png。谁能告诉我怎么样?

2 个答案:

答案 0 :(得分:1)

我对此并不完全满意,因为我认为解决方案应该简单得多,但这样做有效:

import dominate
from dominate.tags import img

nav = Nav()
branding = img(src='static/img/myimage.png')

@nav.navigation()
def mynavbar():
    return Navbar(
    branding,
    View('Main', 'index'),
    View('Config', 'config'),
    View('Help', 'help')
)


nav.init_app(app)

将html字符串放入的问题(例如<img src="myimage.png">)是打印字符串而不是被解释为应该显示的元素。主导的方案似乎克服了这一点。

答案 1 :(得分:0)

我的答案还不是100%完成,而是我到目前为止所拥有的。我正在做的是根据网站显示图像

我创建的nav.py如下所示

nav = [
    {'name': 'Home', 'url': '/'},
    {'name': 'About', 'url': 'about'},
    # {'name': 'pycURL', 'url': 'pythoncurl'},
    {'name': 'Contact', 'url': 'contact'},
    # {'name': 'cartest', 'url': 'bob'},
    # {'name': 'socialtest', 'url': 'social'},
    {'name': 'Search', 'url': 'search'},
    # {'name': 'Searchtest2', 'url': 'search2'},
    {'name': 'layouttest', 'url': 'layouttest'},
    # {'name': 'Login', 'url': 'userauth'}
]

然后我将nav导入views.py并添加到每条路由(我尚未测试,没有在每条路由中添加nav)

@app.route('/social')
def social():
    """Renders the about page."""
    return render_template(
        'social.html',
        title='socialicons',
        year=datetime.now().year,
        message='test',
        #import nav
        nav=nav
    )

然后在layout.html中,我在for循环中调用nav

    <ul class="nav navbar-nav">
        {% for link in nav %}
            <li><a href="{{ link.url }}" class="btn-large">{{ link.name }}</a></li>
        {% endfor %}
    </ul>

我将layout.html扩展到我要应用布局的所有页面上

{% extends 'layout.html' %} 

在页面顶部

当我想向导航添加新链接时,几乎复制并粘贴新行并更改内容以匹配新路线,它将应用于每个页面。

我之所以回答这个问题,是因为我现在正在做的事情就是您想要的东西,但是我想使其在类似的系统中工作。我的目标是根据页面动态地将不同的图像应用于导航栏。