python – Django和MVC(MVT)布局

前端之家收集整理的这篇文章主要介绍了python – Django和MVC(MVT)布局前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我来自使用其他基于MVC的框架,并进入Django,它似乎有点尴尬我以前.例如,在其他基于MVC的框架中.我的布局可能是这样的:

root:
- config (houses the config files (like settings),url.conf,db connections,etc.)
- controllers (houses the main logic of each section of the site. The middle ground between views and models)
- models (handles all the data to be validated and anything that interacts with the database. declares the DB structure. each model a class,each attribute a db field. in django,a template?)
- views (the html displayed to the end user,put together by the controllers)
- tests (all the tests)
- plugins (3rd party apps you install into yours.)
- uploads (user uploaded files)
- public_html (the actual public facing files)
-\ css|js|img (the varIoUs static file types for page manipulation)
-\ index.html

这就是我习惯的,似乎django做的事情有很大的不同.以前,如果我有一个投票应用程序,我会:

controllers/PollController.py
models/Poll.py
views/poll/index.py

这将在db中创建poll表.但在Django,我该怎么做?这是一个可接受的布局吗?从我所读到的,上面将更像是这样:

root:
- project (this would be the main app,and what glues everything together)
--/ settings.py
--/ urls.py
--/ templates/

- apps
-/ Poll
--/ models.py (i would have no Poll.py model,so it would all go in here)
--/ urls.py (any url.conf specific to this model would go in here)
--/ templates/ (the varIoUs views for this app)

虽然这在某些方面确实有意义,但它对我来说感觉很陌生.与第一个示例中描述的传统mvc布局相比,这种布局有什么好处吗?除此之外还有另一种首选布局吗?这个“项目”的目的是核心将是我自己使用的基本框架,我将为每个使用此框架创建一些不同的“应用程序”.在旧版本中,每个应用程序只会通过成为该目录中的插件来扩展主要应用程序.

作为背景说明,我的大多数经验都是在PHP和各种框架中(如大多数情况下,这些),如果这会产生影响.这将是我在python / django中的第一个主要项目.我只是想做对.

最佳答案
最大的好处是应用程序是模块化的.您可以删除一个目录而不是通过删除每个目录的多个目录来删除您的民意调查申请.另一方面,如果你在某个地方发现了一个你想要使用的民意调查应用程序,你可以直接放入一个文件夹,你就可以了.

如果你认为一个网站是一个由几个个体和大多数不同的“应用程序”集合在一起的想法,并用一些粘合剂将它们组合在一起,那么这个组织就更有意义了.

原文链接:https://www.f2er.com/python/438583.html

猜你在找的Python相关文章