使用 MVC 模式实现简单登录功能

作者:半吊子全栈工匠2024.01.18 13:16浏览量:9

简介:本文将通过一个简单的登录功能,带你了解如何使用 MVC 模式(Model-View-Controller)来构建一个 Web 应用程序。我们将使用 Python 作为编程语言,并采用 Flask 框架来实现 MVC 架构。通过这个例子,你可以学习到 MVC 模式的基本概念,以及如何在实际开发中应用它。

在 MVC 模式中,应用程序被划分为三个核心部分:Model(模型)、View(视图)和 Controller(控制器)。Model 负责处理数据和业务逻辑,View 负责展示用户界面,Controller 负责接收用户输入并更新 Model 和 View。
以下是一个使用 Flask 和 SQLAlchemy 实现的简单登录功能的示例:

  1. 安装所需库
    首先,确保你已经安装了 Flask 和 SQLAlchemy。你可以使用 pip 来安装它们:
    1. pip install flask sqlalchemy
  2. 创建数据库模型(Model)
    创建一个名为 user.py 的文件,定义 User 模型:
    1. from flask_sqlalchemy import SQLAlchemy
    2. db = SQLAlchemy()
    3. class User(db.Model):
    4. id = db.Column(db.Integer, primary_key=True)
    5. username = db.Column(db.String(80), unique=True, nullable=False)
    6. password = db.Column(db.String(120), nullable=False)
  3. 创建控制器(Controller)
    创建一个名为 app.py 的文件,定义 Flask 应用和路由处理函数:
    python from flask import Flask, request, render_template, redirect, url_for from .user import User, UserNotFoundError from itsdangerous import URLSafeTimedSerializer, SignatureExpired, BadSignature app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' # 修改为你的数据库 URI db.init_app(app) @app.route('/') def home(): return render_template('home.html') # 渲染 home.html 模板 @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] user = User.query.filter_by(username=username).first() if user and user.password == password: return redirect(url_for('dashboard')) # 登录成功,重定向到 dashboard 页面 else: error = 'Invalid username or password' # 显示错误信息给用户 return render_template('login.html', error=error) # 重新渲染登录页面,显示错误信息 return render_template('login.html') # 如果是 GET 请求,直接渲染登录页面4. 创建视图(View)
    创建两个 HTML 模板文件:home.htmllogin.html。它们分别放置在名为 templates 的文件夹中。例如:templates/home.htmltemplates/login.html。你可以根据需要自行设计这两个模板。5. 运行应用最后,运行 Flask 应用:
    bash python app.py现在,你可以通过浏览器访问 http://127.0.0.1:5000/ 来看到你的登录页面。当你提交表单时,它将验证用户名和密码是否匹配,并根据结果重定向到相应的页面。这只是一个简单的示例,实际应用中可能需要更复杂的验证和安全性措施。通过这个例子,你可以了解 MVC 模式在 Web 开发中的应用,以及如何将应用程序的不同部分组织在一起。你可以根据自己的需求扩展这个示例,添加更多功能和验证逻辑。