简介:本文将通过一个简单的登录功能,带你了解如何使用 MVC 模式(Model-View-Controller)来构建一个 Web 应用程序。我们将使用 Python 作为编程语言,并采用 Flask 框架来实现 MVC 架构。通过这个例子,你可以学习到 MVC 模式的基本概念,以及如何在实际开发中应用它。
在 MVC 模式中,应用程序被划分为三个核心部分:Model(模型)、View(视图)和 Controller(控制器)。Model 负责处理数据和业务逻辑,View 负责展示用户界面,Controller 负责接收用户输入并更新 Model 和 View。
以下是一个使用 Flask 和 SQLAlchemy 实现的简单登录功能的示例:
pip install flask sqlalchemy
user.py 的文件,定义 User 模型:
from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class User(db.Model):id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(80), unique=True, nullable=False)password = db.Column(db.String(120), nullable=False)
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)home.html 和 login.html。它们分别放置在名为 templates 的文件夹中。例如:templates/home.html 和 templates/login.html。你可以根据需要自行设计这两个模板。5. 运行应用最后,运行 Flask 应用:bash
python app.py现在,你可以通过浏览器访问 http://127.0.0.1:5000/ 来看到你的登录页面。当你提交表单时,它将验证用户名和密码是否匹配,并根据结果重定向到相应的页面。这只是一个简单的示例,实际应用中可能需要更复杂的验证和安全性措施。通过这个例子,你可以了解 MVC 模式在 Web 开发中的应用,以及如何将应用程序的不同部分组织在一起。你可以根据自己的需求扩展这个示例,添加更多功能和验证逻辑。