在Flask中使用MongoDB实现用户管理系统

2023-04-15 00:00:00 flask 用户 管理系统

以下是一个简单的用户管理系统,基于 Flask 和 MongoDB 实现。

  1. 安装依赖:
pip install flask flask_pymongo
  1. 连接 MongoDB 数据库:
from flask_pymongo import PyMongo
app = Flask(__name__)
app.config["MONGO_URI"] = "mongodb://localhost:27017/mydatabase"
mongo = PyMongo(app)
  1. 创建集合:
# 创建用户集合
users = mongo.db.users
  1. 添加用户:
users.insert({"username": "pidancode.com", "password": "123456", "email": "pidancode@gmail.com"})
  1. 查询用户:
# 查询用户名为 pidancode.com 的用户
user = users.find_one({"username": "pidancode.com"})
if user:
    print(user["email"])
else:
    print("User not found")
  1. 更新用户:
# 更新用户名为 pidancode.com 的用户的密码和邮箱
users.update({"username": "pidancode.com"}, {"$set": {"password": "654321", "email": "pidancode@hotmail.com"}})
  1. 删除用户:
# 删除用户名为 pidancode.com 的用户
users.remove({"username": "pidancode.com"})
  1. 使用 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 进入用户管理界面。

相关文章