gpt4 book ai didi

python - 隐藏 Jinja2 模板中的元素?有什么办法可以隐藏按钮吗?

转载 作者:行者123 更新时间:2023-12-04 14:21:13 25 4
gpt4 key购买 nike

我正在使用 Python 和 Flask 处理我的 Web 应用程序。我有一个导航栏和一些按钮,当我不在索引页面上时,我想隐藏其中一个按钮。那可能吗?我希望“选择品牌”按钮仅在 index.html 页面上可见。

{% block navbar %}

<nav class="navbar navbar-expand-lg navbar-default fixed-top ">
<div class="container">

<div class="navbar-header">
<button button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<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" rel="home" href="{{ url_for('main.index') }}" title="Mobile phones and accessories">
<img style="max-width:40px; margin-top: -9px;"
src="http://www.logospng.com/images/38/devfest-2016-38885.png" >
</a>
</div>

<div id="navbar" class="collapse navbar-collapse navbar-responsive-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="{{ url_for('main.index') }}">Home</a></li>
{% if current_user.is_authenticated and current_user.admin %}
<li><a href="{{ url_for('phones.new_phone') }}">Add phone</a></li>
<li><a href="{{ url_for('phones.brand') }}">Add brand</a></li>
{% endif %}

<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Select brand <span class="caret"></span></a>
<ul class="dropdown-menu">
{% for brand in brands %}
<li class="list-group-item">
<a href="{{ url_for('main.index', bra=brand) }}">{{ brand }}</a>
{% endfor %}


</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
{% if current_user.is_authenticated %}
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<span class="glyphicon glyphicon-user"> </span> {{ current_user.username }}
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="{{ url_for('auth.logout') }}" >Logout</a></li>
</ul>
</li>
{% else %}
<li><a class="nav-link" href="{{ url_for('auth.login') }}" >Login</a></li>
<li><a class="nav-link" href="{{ url_for('auth.register') }}" >Register</a></li>
{% endif %}
</ul>
<form class="navbar-form navbar-right" method='POST' action="{{ url_for('phones.search') }}">
<div class="form-group">
<input class="search-query form-control" placeholder="Search..." aria-label="Search" type="text" name="search">
</div>
</form>
</div>

</div>
</nav>
{% endblock %}


最佳答案

在您的 index 中创建一个新变量路由并将该变量传递到 render_template所述路线的方法。这个变量的存在将决定是否<button> or link在您的 <nav> 内应该渲染与否。自 <nav>将在所有其他布局中共享,其 HTML代码应该放在您的 中基本布局 ,或所有其他 View 都继承自的布局。

类似的东西:

索引路由:

@app.route("/")
def index():
# isIndex is the variable we will use to determine
# whether or not to render your navigation link or button
return render_template('index.html', isIndex=True)

基本布局文件:
  <div class="navbar-nav">
{% if isIndex %}
<a class="nav-item nav-link" href="">linkOnlyForIndexPage</a>
{% else %}
<a class="nav-item nav-link" href="">link1</a>
<a class="nav-item nav-link" href="">link2</a>
{% endif %}
</div>

这正是您已经在做的 {% if current_user.is_authenticated %}为您的导航链接。这样做的原因是因为 index 路由是唯一的路由 其中 在您的 jinja2 模板中设置此变量,因此,在此条件检查中,呈现相应 View 的所有其他路由将默认为 false: {% if isIndex %}
希望这有帮助!

关于python - 隐藏 Jinja2 模板中的元素?有什么办法可以隐藏按钮吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54659957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com