提问者:小点点

如何使用Flask在href链接中链接内部html文件


我有一个导航栏在我的flask应用程序两个元素-主页和提交。 我试图将home的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')

当我运行我的应用程序时,我得到以下页面:

但是,当我点击home或login时,我收到了这个错误:

我是新的烧瓶,所以我不明白为什么这是发生。 这两个html文件都在我的模板文件夹,但你如何链接他们在一起,所以当我点击主页或登录它带我到另一个html页面?


共1个答案

匿名用户

那么,您需要定义单独的登录路由,以便像下面这样工作


# app.py

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


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

在模板中,您需要像下面这样更改它

    <!-- block nav -->

    <li><a href="/"> Home </a></li>
    <li><a href="/login"> Login </a></li>

    <!-- More better way -->
    
    <li><a href="{{ url_for('index') }}"> Home </a></li>
    <li><a href="{{ url_for('login') }}"> Login </a></li>