Как заменить фирменный текст изображением в склянке
У меня есть навигационная панель, показывающая в моем приложении flask-bootstrap, импортировав flask-nav и используя следующее:
@nav.navigation()
def mynavbar():
return Navbar(
'MyCompany',
View('Main', 'index'),
View('Config', 'config'),
View('Help', 'help')
)
Но я не могу найти для себя, как поменять текст "MyCompany" для изображения, например, img/mylogo.png . Может кто-нибудь сказать мне, как?
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">
было то, что строка была напечатана, а не интерпретировалась как элемент, который должен отображаться. Доминирующий пакет, кажется, преодолевает это.
Мой ответ не на 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'}
]
Затем я импортирую навигацию в views.py и добавляю к каждому маршруту (я еще не тестировал навигацию, добавленную к каждому маршруту)
@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 я вызываю nav в цикле for
<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' %}
в верхней части страницы
Когда я хочу добавить новую ссылку в навигацию, в значительной степени скопируйте и вставьте новую строку и измените все, чтобы соответствовать новому маршруту, и это будет применяться к каждой странице.
Я ответил на этот вопрос потому, что то, что я делаю сейчас, работает над чем-то вроде того, что вы хотите, но я хочу, чтобы это работало в аналогичной системе. Моя цель - динамически применять разные изображения к навигационной панели в зависимости от страницы.