Структура проекта Django для блога
Я новичок в django и просмотрел много учебников о django и каждый из них имеет свой стиль и технику. мой основной фокус - структурировать мой проект для моего проекта django блога. пожалуйста, помогите мне разобраться
Вот мой вопрос Должен ли я разделить приложение для примера поста, комментария, категории, тега, мета-описания или просто создать приложение блога и иметь все эти модели представления в одном приложении или мне нужно создать пост, комментарий, категорию, тег, мета-описание, и добавить фронтенд приложение для обработки представлений и url.
если я должен разделить приложение, которое я упоминал выше, должен ли администратор для области приборной панели, чтобы пользователь мог добавлять сообщения или удалять в самом приложении или я должен создать приложение приборной панели / администратора.
Нужно ли мне разделять проект для администратора приборной панели и публичной страницы. Или они должны быть в одном проекте, но в разных приложениях.
Я сделал много сценариев, но один из них, который я считаю самым лучшим - вот такой, но мне нужно много комментариев об этом
blog
--blog
--frontend
---- models.py model i leave it empty
---- views.py i focus handel the view of all blog app in here
---- urls.py urls so it make it easy to read and manage
--administrator
---- models.py model i leave it empty
---- views.py easy to set the validator decorator and anything
---- urls.py make the url easy to manage site/administrator if have to add post so it can be site/administrator/add-post
--posts
---- models.py
---- views.py
---- etc except urls.py
--categorie
---- models.py
---- views.py
---- etc except urls.py
--tag
---- models.py
---- views.py
---- etc except urls.py
--comment
---- models.py
---- views.py
---- etc except urls.py
--manage.py
--db.sqlite3
Приложение - это подмодуль проекта, оно должно быть независимым и фокусироваться на одной задаче. Поэтому, если только ваш проект не очень маленький, вы должны разделить его на несколько приложений, зависящих от логических частей блога: посты, комментарии, теги, пользователи, категории, .... Разделив проект на различные приложения, вы избежите огромных файлов и выиграете в простоте, повторном использовании и элегантности. Каждое приложение должно содержать свои собственные модели, представления, формы и урлы. Наличие уникального файла urls не упрощает работу, потому что вам придется жестко кодировать полный путь, а без организации все это быстро превращается в хаос. Вы должны построить свой фронтенд, поместив каждое представление в нужное приложение, а связанные с ним шаблоны - в уникальный каталог. Для администрирования вы можете воспользоваться преимуществами Django Admin, который поставляется из коробки, и просто включить файл admin.py
в каждое приложение (читайте документацию для подробностей), но этот тип администрирования должен быть доступен только суперпользователям. Чтобы позволить обычным пользователям вносить изменения, вы должны создать представления и шаблоны в связанных приложениях. Поэтому по сравнению с вашей текущей схемой я бы удалил приложения administrator
и frontend
, я бы создал файл urls.py
и файл admin.py
для каждого приложения. Для шаблонов вы можете создать папку в каждом приложении или использовать папку верхнего уровня для всех них.