首页 > 解决方案 > 未找到 在服务器上未找到请求的 URL。如果您输入了 URL... Flask 重定向不起作用

问题描述

我正在尝试使用 html、Javascript、python、Flask 和 MySQL 创建一个 Web 端。但是,我在尝试在线学习教程时遇到了麻烦。尝试从 html 索引页面处理表单时出现问题。我的应用

from flask import Flask, render_template, flash, request, url_for, redirect
from flask_mysqldb import MySQL
from datetime import datetime
import yaml
import smtplib
app = Flask(__name__)

db = yaml.load(open('db.yaml'))
app.config['MYSQL_HOST'] = ''
app.config['MYSQL_USER'] = ''
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = ''

@app.route('/')
def home():
    title = "Cheam Squash Ladders"
    return render_template("index.html", title=title)

@app.route('/sigin', methods=["POST"])
def form():
    user = request.form.get("user")
    password = request.form.get("password")
    return render_template("signin.html", title=title)

    user1 = request.form.get("user1")
    email = request.form.get("email")
    password1 = request.form.get("password1")
    confirm_email = request.form.get("confirm")
    return render_template("register.html")


@app.route('/register', methods=['POST'])
def register():
    return render_template("register.html")

if __name__ == '__main__':
    app.run()

输入表单信息后,以标题中的错误消息结尾。我在一个文件夹“MyNewFlaskApp”中运行我的虚拟环境,这个文件夹包含一个“模板”文件夹和一个“静态”文件夹,我已经从虚拟环境文件夹内部和外部运行了 app.py,但没有任何效果。所有包含 htmls(模板)和静态文件的文件夹都在 env 之外。我想知道这是否是问题所在。我已经搜索了几天没有任何运气。另外,我正在使用 Catalina 在 Mac 上运行 Python3。希望任何人都可以提供帮助。提前感谢无论哪种方式

 <script>
    var x = document.getElementById("Signin");
    var y = document.getElementById("register");
    var z = document.getElementById("btn");
    
    function register(){
        x.style.left = "-400px";
        y.style.left = "50px";
        z.style.left = "110px";
    }
    function Signin(){
        x.style.left = "50px";
        y.style.left = "450px";
        z.style.left = "0px";
    }
</script> 
<form id="Signin" class="Signin-group" action="/signin" method="POST">
                <input id="username" type="text" class="input-field" placeholder="User Id" name="user" required>
                <input id="password" type="password" class="input-field" placeholder="Enter password" name="password" required>
                <input type="checkbox" class="check-box"><span>Remember password</span>
                <button type="submit" class="submit-btn" onclick="login()">Sign In</button>
            </form>
 <form id="register" class="register-group" action="/register" method="POST">
                <input id="newUser" type="text" class="input-field" placeholder="User Id" name="user1" required>
                <input id="newEmail" type="text" class="input-field" placeholder="Email" name="email" required>
                <input id="newPassword" type="password" class="input-field" placeholder="Password" name="password1" required>
                <input id="passwordConfirm" type="password" class="input-field" placeholder="Confirm Password" name="confirm" required>
                <div class="optionS"><input id="optionS" type="radio" name="sport" value="Squash" required> Squash
                    <input id="optionS" type="radio" name="sport" value="Racquetball" required> Racquetball
                    <br/><input type="checkbox" class="check-boxR" required><span class="checkboxR"> I agree to terms and conditions</span>
                </div> 
                <button type="submit" class="submit-btn" onclick="registerUser()">Register here</button>
            </form>

标签: pythonhtmlflask

解决方案


您已经使用尾随斜杠Flask Docs注册了您的路线。

@app.route('/register/', methods=['POST'])

但是在您的表单中,您发布到 URL 时不带斜杠:

<form id="register" class="register-group" action="/register" method="POST">.

您需要分别删除或添加尾部斜杠。


推荐阅读