ifpb-sr / sisriso

MIT License
0 stars 2 forks source link

duvida sobre templates (blocos) #1

Closed Williais closed 5 years ago

Williais commented 5 years ago

vamos la...

a minha duvida é com relação aos templates do jinja (n sei se faz sentido) quando meu arquivo base.html está feito, as pagina subsequentes a base.html terá os blocos simplificados?

para ajuda na minha linha de raciocínio, usarei o exemplo do livro:

{% extends "bootstrap/base.html" %}
{% block title %}Flasky{% endblock %}
{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle"
        data-toggle="collapse" data-target=".navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="/">Flasky</a>
    </div>
    <div class="navbar-collapse collapse">
      <ul class="nav navbar-nav">
        <li><a href="/">Home</a></li>
      </ul>
    </div>
  </div>
</div>
{% endblock %}

{% block content %}
<div class="container">
  <div class="page-header">
    <h1>Hello, {{ name }}!</h1>
  </div>
</div>
{% endblock %}

O bloco do navbar seria assim {% block navbar %}{% endblock %} nas dmais paginas? exemplo:

{% extends "bootstrap/base.html" %}
<title>{% block title %}Flasky{% endblock %} - 2° pagina</title>

{% block navbar %}{% endblock %}

{% block content %}
<div class="container">
 {% block page_content %}{% endblock %}
</div>
{% endblock %}

????????????????

alefemoreira commented 5 years ago

O navbar deve ter o código no base.html. As coisas que é usado nos templates como {% block page_content %}{% endblock %} serão substituídos pelo conteúdo presente em qualquer outra página que seja filho dessa. Quem faz a substituição é o Flask

edusantana commented 5 years ago

Primeiro recomendo conhecer o template do base do flask-bootstrap, este é o da versão 3.3.7.1 (verifique qual está utilizando).

Vamos supor que você irá criar uma nova base (templates/minhabase.html), baseando nesse modelo. Neste caso você adicionar {% extends "bootstrap/base.html" %} no início do arquivo, para informar qual o modelo base.

Nos demais arquivos, você utilizará: {% extends "minhabase.html" %}

edusantana commented 5 years ago

O bloco navbar possivelmente poderia ser definido inteiramente no arquivo base. Desse forma todas as páginas teriam o mesmo navbar.

edusantana commented 5 years ago

Nas demais páginas, para definir o título basta:

{% block title %}Título da página{% endblock %}
edusantana commented 5 years ago

@Williais quando tiver uma dúvida, o ideal é comitar os códigos e escrever a dúvida com base no código enviado ao github, desse forma podemos alterar o que está errado (ganha tempo).

Mais alguma dúvida?

Williais commented 5 years ago

por enquanto n