Я попытался запустить код и получил werkzeug.routing.BuildError: Не удалось создать URL для конечной точки 'book'. Вы имели в виду «sign_in» вместо этого? Кроме того, если я пытаюсь получить доступ к маршруту / main, он говорит, что URL не найден на сервере. Может кто-нибудь, пожалуйста, помогите мне.
import os
import csv
from flask import Flask, session, render_template, request
from flask_session import Session
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
app = Flask(__name__)
# Check for environment variable
if not os.getenv("DATABASE_URL"):
raise RuntimeError("DATABASE_URL is not set")
# Configure session to use filesystem
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)
# Set up database
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
f = open("books.csv")
reader = csv.reader(f)
for isbn, title, author, year in reader:
db.execute("INSERT INTO books (ISBN, title, author, year) VALUES (:ISBN, :title, :author, :year)",
{"ISBN": isbn, "title": title, "author": author, "year": year})
print(f"Added flight from {isbn} to {year} lasting {title} minutes.")
db.commit()
@app.route("/")
def sign_in():
return render_template("Sign.html")
@app.route("/main" method = "POST")
def book():
name = request.form.get("name")
return render_template("books.html", username=name)
Это знак. html документ
{% extends "layout.html" %}
{% block title %}Sign in{% endblock %}
{% block body %}
<div class="main">
<p class="sign" align="center">Sign in</p>
<form action= "{{ url_for('book') }}" class="form1" method="post">
<input name = "name" class="un " type="text" align="center" placeholder="Username">
<input class="pass" type="password" align="center" placeholder="Password">
<button class="submit" align="center">Sign in</button>
</form>
</div>
{% endblock %}
Это книги. html документ
{% extends "layout.html" %}
{% block title %} {{username}} {% end block%}
{% block body%}
{% end block %}