不依赖于框架的MVC教程?[已关闭]
2022-08-30 09:25:31
我想学习MVC的“架构模式”,但我还不想跳进像Rails或Django这样的框架。我想先理解这个概念,并在我目前熟悉的环境中编写一些简单的代码,恰好是PHP / HTML / CSS / MySQL。我不一定需要一个基于PHP的教程,因为我确实理解很多不同的语言。我不想安装任何框架、API或库。我只想学习如何在MVC中思考并将其应用于我的项目。有什么建议吗?
我想学习MVC的“架构模式”,但我还不想跳进像Rails或Django这样的框架。我想先理解这个概念,并在我目前熟悉的环境中编写一些简单的代码,恰好是PHP / HTML / CSS / MySQL。我不一定需要一个基于PHP的教程,因为我确实理解很多不同的语言。我不想安装任何框架、API或库。我只想学习如何在MVC中思考并将其应用于我的项目。有什么建议吗?
几乎每个框架都以不同的方式执行MVC,因此您最终可能会变得更加困惑。MVC的一般原则非常简单:“模型是状态;视图对模型做出反应;控制器对视图做出反应;控制器更改模型”。模型,视图和控制器是概念 - 它们是你觉得它们是什么。类,类束,具有XML配置文件的类的实例,您可以命名它。
我实际上认为这涵盖了基本原则。没有框架,你不会走得更远。重要的是特定框架如何定义模型、视图和控制器及其交互。
MVC基本上只是将代码拆分为处理数据的模型,显示数据的视图以及将数据从模型传递到视图的控制器。
这不是你需要API或框架,它只是一种拆分代码的方式。许多框架使用它的原因是因为它是一个非常简单的概念,它适用于许多事情(它非常适合网页),并且相当灵活(例如,使用Rails,如果您愿意,您可以在视图或模型/控制器中执行所有操作。
Python中的一个快速示例,一个示例MVC结构化Python脚本。不一定是“最佳实践”,但它有效,并且相当简单:
class Model:
def get_post(self, id):
# Would query database, perhaps
return {"title": "A test", "body": "An example.."}
class Controller:
def __init__(self):
self.model = Model()
self.view = View()
def main(self):
post = self.model.get_post(1)
self.view.display(post)
class View:
def display(self, item):
print "<h1>%(title)s</h1>\n%(body)s" % item
c = Controller()
c.main()