Flask模板:链接html页面

时间:2018-10-18 08:42:49

标签: python html flask

我是Flask的新手。我将index1.html作为主页。我添加了一个带有其他html页面链接的导航栏。我该怎么办?

nav>
  <button type="button" id="nav-toggle" onclick="$('nav ul').toggle()">☰MENU</button>
<ul>

<li class="active"><a href="index1.html" class="nav_tab" id="_a">Overview</a></li>  
<li><a href="search.html" class="nav_tab" id="_b">Search</a></li>

</ul>
</nav>

html页面位于template文件夹中。 “概述”链接应指向主页(index1.html),而“搜索”应转到search.html页面。如何在烧瓶中实现此目的? 我的routes.py看起来像这样:

from flask import render_template
from tomvar import app

@app.route('/')
@app.route('/index')
def index():
    return render_template('index1.html')

1 个答案:

答案 0 :(得分:1)

templates文件夹中的HTML页面必须在route.py中的某些路由后面,因此您应该在HTML href标签中定义路由,就像这样。单击示例会将您带到/search,后面将打开search.html页。

<li class="active"><a href="/search">Example</a></li>
  

第二个选项

或者对此有另一种解决方案,可以使用url_for生成url到应用程序中定义的路由。

routes.py:

from flask import Flask, request, url_for, redirect, render_template
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/index2', methods=['GET', 'POST'])
def index_func():
    if request.method == 'POST':
        # do stuff when the form is submitted
        # redirect to end the POST handling
        # the redirect can be to the same route or somewhere else
        return redirect(url_for('index'))
    # show the form, it wasn't submitted
    return render_template('index2.html')

templates / index.html:

<!doctype html>
<html>
<body>
   <p><a href="{{ url_for('index_func') }}">Check out</a></p>
</body>
</html>