Python MVC和django基础
这是一个非常新的场景,试图找到一些文档来采用最佳实践。我们正在建设一个相当大的内容网站,它将由各种媒体目录组成,我正在尝试寻找一些可比较的数据/架构模型,以便我们能够更好地了解我们应该使用的方法,使用一个我们从未使用过的框架。如有任何见解/帮助,将不胜感激 “数据/架构模型,以便我们能够更好地了解我们应该使用的方法,使用我们以前从未使用过的框架” Django将最佳实践强加给您。你没有很多选择,也不会犯很多错误 MVC(一种崇高的理想)的实施如下:Python MVC和django基础,python,django,django-models,django-templates,Python,Django,Django Models,Django Templates,这是一个非常新的场景,试图找到一些文档来采用最佳实践。我们正在建设一个相当大的内容网站,它将由各种媒体目录组成,我正在尝试寻找一些可比较的数据/架构模型,以便我们能够更好地了解我们应该使用的方法,使用一个我们从未使用过的框架。如有任何见解/帮助,将不胜感激 “数据/架构模型,以便我们能够更好地了解我们应该使用的方法,使用我们以前从未使用过的框架” Django将最佳实践强加给您。你没有很多选择,也不会犯很多错误 MVC(一种崇高的理想)的实施如下: 数据是使用Django ORM模型在“mod
- 数据是使用Django ORM模型在“models.py”文件中定义的
- py文件将URL映射到视图函数。明智地选择你的URL
- View函数利用模型中的模型和方法进行所有处理
- 视图函数调用的表示(通过HTML模板)。基本上,在表示中不能进行任何处理,只能进行轻量级迭代和决策
- Apache做两件事
- 直接、即时地提供静态内容
- 将动态URL传递给Django(通过mod_python、mod_wsgi或mod_fastcgi)。Django应用程序将URL映射到查看函数(通过ORM/model访问数据库)并通过模板显示
- Django视图函数使用的数据库
请随意阅读。它很棒;也许是最好的。首先,忘记所有MVC咒语。拥有一个好的分层结构很重要,但是MVC(如最初定义的那样)不是一个,它是一个模块化的结构,其中每个GUI模块被拆分到这些树型子模块中。这里没有什么可在web上使用的 在web开发中,有一个分层结构是值得的,其中最重要的一层是存储/建模层,它被称为模型层。除此之外,您还需要一些其他层,但它们与GUI世界中的视图和控制器完全不同 Django层大致如下:
- 存储/建模:显然是models.py。尝试将大多数“工作”概念放在那里。所有关系和所有操作都应该在这里实现
- 分派:主要是在URL.py中。在这里,您可以将URL方案转换为代码路径。将其视为一个大的switch()语句。努力创建可读的URL,将其映射到用户意图中。这将有助于添加新功能,或以新的方式完成相同的任务(如稍后的AJAX UI)
- 收集:主要是视图功能,包括您的和预构建的通用视图。在这里,您只需收集模型中的所有视图以满足用户请求。令人惊讶的是,在许多情况下,它只需选择一个模型实例,其他所有内容都可以从关系中检索。对于这些URL,通用视图就足够了
- 演示:模板。如果视图为您提供了所需的数据,那么将其转换为网页就足够简单了。在这里,您将感谢模型类具有良好的访问器,可以从任何给定实例获取任何类型的相关数据
如果您关心性能或内存使用,通常最好使用单独的轻量级Web服务器(如Nginx)来提供静态内容,而不是同时使用Apache(尽管如果在守护程序模式下使用mod_wsgi和Apache worker MPM,您可以获得类似的效果)。@Carl Meyer:或lighttpd提供静态内容。