在Flask中使用MongoDB实现用户管理系统
以下是一个简单的用户管理系统,基于 Flask 和 MongoDB 实现。
- 安装依赖:
pip install flask flask_pymongo
- 连接 MongoDB 数据库:
from flask_pymongo import PyMongo app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/mydatabase" mongo = PyMongo(app)
- 创建集合:
# 创建用户集合 users = mongo.db.users
- 添加用户:
users.insert({"username": "pidancode.com", "password": "123456", "email": "pidancode@gmail.com"})
- 查询用户:
# 查询用户名为 pidancode.com 的用户 user = users.find_one({"username": "pidancode.com"}) if user: print(user["email"]) else: print("User not found")
- 更新用户:
# 更新用户名为 pidancode.com 的用户的密码和邮箱 users.update({"username": "pidancode.com"}, {"$set": {"password": "654321", "email": "pidancode@hotmail.com"}})
- 删除用户:
# 删除用户名为 pidancode.com 的用户 users.remove({"username": "pidancode.com"})
- 使用 Flask 实现 WEB 应用:
from flask import Flask, render_template, request, redirect, url_for app = Flask(__name__) # 连接 MongoDB 数据库 app.config["MONGO_URI"] = "mongodb://localhost:27017/mydatabase" mongo = PyMongo(app) # 创建用户集合 users = mongo.db.users # 用户登录 @app.route("/login", methods=["GET", "POST"]) def login(): if request.method == "POST": # 获取用户名和密码 username = request.form["username"] password = request.form["password"] # 查询用户 user = users.find_one({"username": username, "password": password}) if user: # 登录成功 return redirect(url_for("dashboard")) else: # 登录失败 return render_template("login.html", message="Invalid username or password") # 显示登录页面 return render_template("login.html") # 用户注册 @app.route("/register", methods=["GET", "POST"]) def register(): if request.method == "POST": # 获取用户名、密码和邮箱 username = request.form["username"] password = request.form["password"] email = request.form["email"] # 查询用户是否存在 user = users.find_one({"username": username}) if user: return render_template("register.html", message="Username already registered") # 注册新用户 users.insert({"username": username, "password": password, "email": email}) return redirect(url_for("login")) # 显示注册页面 return render_template("register.html") # 用户管理界面 @app.route("/dashboard") def dashboard(): # 获取所有用户 all_users = users.find() return render_template("dashboard.html", users=all_users) if __name__ == "__main__": app.run(debug=True)
上面的代码实现了用户登录、用户注册和用户管理功能,可以通过浏览器访问 http://localhost:5000/login 进行登录和注册, http://localhost:5000/dashboard 进入用户管理界面。
相关文章