Я собираюсь использовать другие основанные на 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
Это то, к чему я привык, и кажется, что Джанго делает вещи совсем по-другому. Где раньше, если бы у меня было приложение для голосования, у меня было бы:
controllers/PollController.py
models/Poll.py
views/poll/index.py
и это создаст таблицу опроса в БД. Но в 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 и различными фреймворками из этого мира (в основном cakephp, yii), если это имеет значение. Это будет мой первый основной проект в python / django. я просто хочу понять это правильно.