python - 未找到 在服务器上未找到请求的 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>
解决方案
您已经使用尾随斜杠Flask Docs注册了您的路线。
@app.route('/register/', methods=['POST'])
但是在您的表单中,您发布到 URL 时不带斜杠:
<form id="register" class="register-group" action="/register" method="POST">
.
您需要分别删除或添加尾部斜杠。
推荐阅读
- mysql - Mysql条件聚合使用group_by查询和Case对月份和年份进行分组
- c# - c#中的随机偶奇数生成
- python - 如何计算函数中 GPA 的平均值?
- javascript - Vue.js v-for 在列表项上,通过 id 查找数组对象
- palantir-foundry - 使用 YAML 创建批量同步不会创建计划时间
- django - MultipleObjectsReturned at /review/2 get() 返回了多个项目——它返回了 2
- python - 它几乎是相同的功能,但一个正在工作,另一个没有
- c# - UWP 滚动条样式
- windows - 错误无效的 Windows 挂载类型:Windows 容器的 Windows 10 docker 构建上的“绑定”
- javafx - 控制器的 javafx.fxml.LoadException 问题