不安装flask-wtf用Flask定义一个表单界面,分为账户名和密码登录,后端视图函数对表单上输入的信息进行比对, 账户名为admin密码为123456若正确利用消息闪现提示登陆正确并跳转界面, 将用户名和密码存入session中 若不正确用消息闪现提示用户名或密码错误
时间: 2024-09-24 22:28:32 浏览: 23
在 Flask 中,不使用 flask-wtf 库的情况下手动创建表单界面可以按照以下步骤进行:
首先,在 HTML 模板文件(如 `login.html`)中定义一个简单的登录表单:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Flask 登录</title>
</head>
<body>
<form action="/login" method="post">
<label for="username">账户名:</label>
<input type="text" id="username" name="username" required><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password" required><br>
<input type="submit" value="登录">
</form>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="{{ category }}">{{ message }}</div>
{% endfor %}
{% endif %}
{% endwith %}
</body>
</html>
```
然后,在 Flask 视图函数中处理表单提交,这里假设我们有一个名为 `app.py` 的主文件:
```python
from flask import Flask, render_template, request, redirect, session
app = Flask(__name__)
app.secret_key = 'your_secret_key' # 设置 session 密钥
def login_view():
return render_template('login.html')
@app.route('/login', methods=['POST'])
def handle_login():
username = request.form['username']
password = request.form['password']
# 假设这是数据库中的数据,实际应用中需要查询
correct_username_password = ('admin', '123456')
if username == correct_username_password[0] and password == correct_username_password[1]:
session['username'] = username
session['password'] = password
flash('登录成功', 'success') # 使用flash消息
return redirect('/')
else:
flash('用户名或密码错误', 'danger') # 错误信息
return login_view() # 返回登录页面再次尝试
if __name__ == '__main__':
app.run(debug=True)
```
在这个例子中,当用户提交正确的账号和密码时,会通过 `session` 存储用户的登录状态,并显示一条消息提示登录成功。如果输入错误,则会在登录页面显示错误消息。