html - 我无法查看此登录页面?
问题描述
我正在尝试使用flask和python创建一个登录页面,但我无法路由到该页面,它直接返回语句并在我的情况下打印Hello。如果我尝试添加 else case,它将进入 else case 并在 else case 中执行操作。如果我将 main 函数放在 else case 中,则会出现错误:
werkzeug.exceptions.HTTPException.wrap..newcls:400 错误请求:KeyError:'Employee_ID'
代码:
from flask import Flask, render_template, request, redirect,flash
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = "127.1.1.0"
app.config['MYSQL_USER'] = "root"
app.config['MYSQL_PASSWORD'] = "***"
app.config['MYSQL_DB'] ="users"
mysql = MySQL(app)
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
userDetails = request.form
Employee_ID = userDetails['Employee_ID']
password = userDetails['password']
cur = mysql.connection.cursor()
cur.execute("select * from user where Employee_ID=%s",(Employee_ID))
EmpDetails=cur.fetchone()
cur.close()
if EmpDetails== password:
flash('You have logged in successfully !!')
return 0
return "Hello"
if __name__ == '__main__':
app.run(debug=True)
HTML 模板:
</head>
<h1><center>Sign In!</center></h1>
<body>
<div class="login-page">
<div class="form" >
<form class="register-form" method="post" action="login.html">
<input type="text" id="Employee_ID" placeholder="Employee ID" />
<input type="password" id="password" placeholder="password"/>
<button>Enter</button>
</form>
</div>
</div>
</body>
</html>
解决方案
您缺少 html 输入中的名称字段。使用输入名称字段获取表单元素。您正在尝试使用引发KeyErrorid
的字段来获取元素值,因为在表单中找不到具有该键的元素。
将您的 HTML 文件更改为:
</head>
<h1><center>Sign In!</center></h1>
<body>
<div class="login-page">
<div class="form" >
<form class="register-form" method="post" action="login.html">
<input type="text" id="Employee_ID" name="Employee_ID" placeholder="Employee ID" /> <-- add name field
<input type="password" id="password" name="password" placeholder="password"/> <--add name field
<button>Enter</button>
</form>
</div>
</div>
</body>
</html>
希望它可以帮助你。
推荐阅读
- java - 用户通过 Internet 进行身份验证后,如何从登录活动转发或移至家庭活动?
- sql-server - Sql Server 不更新记录
- reactjs - 如何告诉 jest 为每个文件制作快照?
- bash - 我无法从索引数组中 Ping IP,但可以使用关联数组
- jquery - Bootstrap 的下拉菜单被数据表隐藏
- windows - 如何在 Windows 上获取传入 UDP 数据包的 TTL?
- android - 将 Android Studio 从 4.0.1 更新到 4.1.2 后无法打开任何文件
- r - 如何为 geom_tile 中的每个变量添加单独的图例?
- python - 无法使用 .grid tkinter 居中按钮
- c - 独占模式下的 IAudioClient 初始化问题