我的flask应用程序中有一个导航栏,包含两个元素--主页和提交。我正在尝试将主页的href链接到一个特定的html页面,并将提交的href链接到另一个页面。
下面是我的index.html文件:
{% extends "bootstrap/base.html" %}
{% block title %} {% endblock %}
{% block navbar %}
<div class="'navbar navbar-inverse" role="navigation">
<div class="containter">
<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">Toggle Navigation</span>
<span class="icon-bar">Toggle Navigation</span>
<span class="icon-bar">Toggle Navigation</span>
</button>
<a class="navbar-brand" href="/">Flask App</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="/login"> Home </a></li>
<li><a href="/login"> Login </a></li>
</ul>
</div>
</div>
</div>
{% endblock %}
{% block content %}
<div class="containter">
<div class="page-header">
<h1>Hellooo {{name}}</h1>
</div>
</div>
{% endblock %}
这是我的login.html文件:
{% extends "index.html" %}
这是我的app.py文件:
# Import key modules/packages
from flask import (Flask, flash, g, jsonify, redirect, render_template,
request, has_request_context, session, url_for, send_from_directory, abort)
app = Flask(__name__)
app.secret_key = 'my_secret_key'
from flask_bootstrap import Bootstrap
Bootstrap(app)
@app.route('/')
def login():
return render_template('index.html')
运行应用程序时,出现以下页面:
但是,当我单击主页或登录时,我收到此错误:
我是新来的flask,所以我不明白为什么会发生这种情况。两个html文件都在我的模板文件夹中,但你如何将它们链接在一起,以便当我点击主页或登录时,它会带我到另一个html页面?
2条答案
按热度按时间sczxawaw1#
您需要为登录定义单独的路径,以便像这样工作
在模板中,您需要像这样更改它
camsedfj2#
正如上面所建议的,我为app.py中的每个视图添加了路由。这是从静态站点(仅限HTML和css)到Flask应用程序的转录。
对于链接,答案由“使用url_for()在Flask中创建动态URL”中的示例提供
静态站点中的链接,例如index.html:
flask 版本中的index.html: