werkzeug.routing.BuildError render_模板未返回html文件代码

2024-04-27 04:44:15 发布

您现在位置:Python中文网/ 问答频道 /正文

werkzeug.routing.BuildError:无法为端点“home”生成url。你是说“上传文件”吗?

render_模板没有返回html文件,我当前的代码在routes.py文件中是这样的

from flask  import  render_template , url_for , flash , redirect , request
from flaskblog import app , db , bcrypt
from flaskblog.forms import RegistrationForm , LoginForm 
from flaskblog.models import User , Post
from flask_login import login_user
from flask import Flask, jsonify
from flask import Flask, request, jsonify
import pandas as pd





@app.route("/upload", methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        print(request.files['file'])
        f = request.files['file']
        data_xls = pd.read_excel(f)

        return data_xls.to_html()
    return'''

    <!doctype html>
    <title>Upload an excel file</title>
    <h1>Excel file upload (csv, tsv, csvz, tsvz only)</h1>
    <form action="" method=post enctype=multipart/form-data>
    <p><input type=file name=file><input type=submit value=Upload>
    </form>
    '''


@app.route('/')
@app.route('/newabout')
def about():
    return render_template('newabout.html' , title = "About")

当我直接返回html代码时,它可以工作,但不会通过render_模板返回.html文件

我的newabout.html文件只是h1标题

{%extends "base.html"%}



{%block body%}
<h1>About Page</h1>

{%endblock%}

我的init.py文件如下

from flask import Flask
from flask_sqlalchemy import SQLAlchemy  
from flask_bcrypt import Bcrypt
from flask_login import LoginManager


app = Flask(__name__)
app.config['SECRET_KEY'] ='8501dc446e46a15de4390e177dfa973d'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db'
db = SQLAlchemy(app)
bcrypt = Bcrypt(app)
login_manager = LoginManager(app)

from flaskblog import routes

我当前的树结构是这样的,所有的.py文件都在flaskblog中

E:。 ├───.vscode ├───烧瓶博客 │ ├───静止的 │ ├───模板 │ └───pycache └───pycache

这是我的base.html文件

<!DOCTYPE html>
<html lang="en">
<head>

    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <!-- <link rel="stylesheet" type="text/css" href="{{url_for('static',filename='main.css')}}"> -->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    {%if title %}
        <title>Flask Blog - {{title}} </title>
    {%else%}
        <title>Flask Blog</title>
    {% endif %}

</head>

<body>

    <header  
    class="site-header" >

        <div class="d-flex flex-column flex-md-row align-items-center p-3 px-md-4 mb-3 bg-white border-bottom shadow-sm">
            <img src="https://pbs.twimg.com/profile_images/1148174028756176896/NJ0owBSm.jpg" alt="Eobi Logo" style="width:120px;height:120px;">
            <a class="my-0 mr-md-auto p-2 text-dark"  href="/">EOBI</a>
            <nav class="my-2 my-md-0 mr-md-3">
              <a class="p-2 text-dark" href="{{url_for('home')}}">Home</a>
              <a class="p-2 text-dark" href="{{url_for('about')}}">About</a>
            </nav>
            <nav class="my-2 my-md-2 mr-md-3">
            <a class="btn btn-primary" href="{{url_for('register')}}">Sign up</a>
            <a class="btn btn-outline-primary" href="{{url_for('login')}}">Sign in</a>
        </nav>   
        </div>
    </header>
    <main role="main"  class="container">
        <div class="row">
            <div class="col-md-8">
            {% with messages = get_flashed_messages(with_categories=true) %}
                {% if messages%}
                    {%for category , message in messages %}
                        <div class="alert alert-{{category}}">
                            {{message}}
                            </div>
                        {%endfor%}
                    {%endif%}
                {%endwith%}
                {% block body%} {% endblock body%}
            </div>

        </div>
</main>



    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>

我还是一个新手,所以非常感谢您的帮助:)


Tags: 文件fromimportdivappurlflaskfor