我通过导入flask-nav并使用以下内容在我的flask-bootstrap应用程序中显示了一个导航栏:
@nav.navigation()
def mynavbar():
return Navbar(
'MyCompany',
View('Main', 'index'),
View('Config', 'config'),
View('Help', 'help')
)
但我无法找到我的生活如何交换文字" MyCompany"对于图像,例如img / mylogo.png。谁能告诉我怎么样?
答案 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' %}
在页面顶部
当我想向导航添加新链接时,几乎复制并粘贴新行并更改内容以匹配新路线,它将应用于每个页面。
我之所以回答这个问题,是因为我现在正在做的事情就是您想要的东西,但是我想使其在类似的系统中工作。我的目标是根据页面动态地将不同的图像应用于导航栏。