У меня есть маршрут приложения страницы. Это мой код фляги Python.
from flask import Flask, render_template, flash, redirect
from forms import RegistrationForm, LoginForm
app = Flask(__name__)
@app.route("/")
@app.route("/home", methods=["GET", "POST"])
def home():
return render_template("home.html")
@app.route("/dashboard", methods=["GET", "POST"])
def dashboard():
return render_template("dashboard.html")
@app.route("/register", methods=["GET", "POST"])
def register():
form = RegistrationForm()
app.logger.debug(form.validate_on_submit())
if form.validate_on_submit():
return redirect("dashboard")
return render_template("registerPage.html", title = "Register", forms=form)
Когда я запускаю его, он перенаправляется на http://локальный: 5000, когда он должен перенаправлять на http://локальный: 5000/приборная панель.
Что творится?
Извините, я пропустил какой-то код






Добавьте импорт для url_for:
from flask import url_for
Затем используйте его в перенаправлении:
return redirect(url_for("dashboard"))
Функция url_for берет имя функции и создает «URL-адрес» этой функции.
Вы разместили ссылку на файлы вашего проекта в DropBox.
В вашем шаблоне registerPage.html вам нужно изменить:
<form method = "POST" action = "/">
к:
<form method = "POST" action = "/register">
Если вместо этого вы отправите сообщение в /, функция register никогда не увидит опубликованные данные и никогда не перенаправит пользователя на панель инструментов.
Да, это опечатка, все равно 404.
Его перенаправление на функцию, связанную с @app.route("/"), в данном случае на домашнюю страницу.
Пожалуйста, попробуйте импортировать url_for и использовать его в вызове для перенаправления.
У меня есть, но это дает The requested URL was not found on the server.
Хорошо, давайте посмотрим на registerPage.html. Когда вы впервые заходите в /register, отображается ли форма?
Если я удаляю @app.route("/"), это дает мне эту ошибку, однако, когда я добавляю ее, она перенаправляется на функцию, с которой она тоже связана.
Это работает, когда я добавляю @app.route("/") к функции регистрации, но я не могу сделать это для всех перенаправлений. Есть ли другой способ решить эту проблему?
Я не уверен, что здесь есть проблема. Мне нужно увидеть код шаблона.
Это файлы проекта
он должен перенаправлять на
dashboardтолько тогда, когда вы находитесь наregisterи отправляете правильные значения вform. Я не вижу других перенаправлений.