编写flask登录验证功能
时间: 2024-03-20 09:34:10 浏览: 21
以下是一个简单的Flask登录验证功能的示例:
```
from flask import Flask, render_template, request, redirect, session
app = Flask(__name__)
app.secret_key = "mysecretkey" # 设置session密钥
@app.route("/")
def home():
if "username" in session:
return "你已经登录,欢迎 " + session["username"]
else:
return redirect("/login")
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
username = request.form["username"]
password = request.form["password"]
if username == "myusername" and password == "mypassword":
session["username"] = username
return redirect("/")
else:
return render_template("login.html", message="用户名或密码错误")
else:
return render_template("login.html")
@app.route("/logout")
def logout():
session.pop("username", None)
return redirect("/")
if __name__ == "__main__":
app.run()
```
在上面的代码中,我们首先设置了一个密钥来保护session数据。然后,我们定义了三个路由函数:
- `/`:如果用户已经登录,返回一个欢迎消息。否则,重定向到登录页面。
- `/login`:如果请求方法是POST,我们将从表单中获取用户名和密码,并将它与我们硬编码的用户名和密码进行比较。如果它们匹配,我们将在session中存储用户名,并将用户重定向到首页。否则,我们将返回一个带有错误消息的登录页面。如果请求方法是GET,我们只是渲染登录页面。
- `/logout`:删除session中的用户名,并将用户重定向到首页。
在上面的代码中,我们使用了一个简单的HTML模板来渲染登录页面。在实际应用中,您可能需要使用更复杂的模板来构建更具交互性的用户界面。此外,您可能需要将用户的密码存储在安全的地方,例如哈希表中,而不是在代码中硬编码密码。