/ / Интегриране на приложения за django в собствените ви изгледи - django, django-шаблони, django-views

Интегриране на django приложения в собствените ви изгледи - django, django-шаблони, django-views

Нека „да кажа, че пиша сложен сайт в django с уикита, форуми, ... или пиша мои собствени приложения, които възнамерявам да използвам повторно от различни сайтове.

Наистина искам да създам например уики страница, която има форум в долната част, или да използвам повторно написаното от мен уики приложение с различно графично оформление.

Какъв е най-добрият начин да структурирам приложението ми, за да позволя този вид повторна употреба?

Досега давах на приложения собствени URL адреси в urls.py. Това обаче не работи, ако искам да комбинирам няколко приложения заедно в една страница.

Освен това повечето от приложенията, които намерих онлайнидват със собствени шаблони, които имат пълния html, и не отделят логиката на създаване / подготовка на контекст от тази на обработка на заявка и генериране на отговор.

Каква е най-добрата практика тук? Какво правиш? редактирате шаблоните, които идват от приложения, които изтегляте онлайн? refactor ги да се поберат във вашата кандидатура?

какво трябва да направя за собствените си приложения? структурирайте ги така, че да имат метод за получаване на контекста и метод за рендирането му?

Отговори:

0 за отговор № 1

Django не разполага с голяма подкрепа за архитектурата, ориентирана към компоненти. Намирам това проблематично и понякога. Ще се сблъскате с проблеми тук.

  1. архитектура
  2. код

Архитектура: Тъй като Django не е компонентно ориентиран, всички приложенияне са ориентирани към компонентите. Дизайнерите и кодерите за тези приложения не са мислили за това. Така те "току-що изградиха" изгледи ", за да взаимодействат с приложенията си. Ще трябва да получите нещо по-" подвижно ".

Код: След като решите да изградите това, ще трябванамерете каква подкрепа имате за това. Повечето приложения на Django са доста добре кодирани, така че няма да имате много код в изгледите, но абстрахирани на други места. По този начин можете да използвате този код и да изградите свои собствени компоненти.

Пример: Да предположим, че работите с трета страна Wikiап. Тази уики има изглед да показва най-високо класираните етикети и друг изглед, за да създаде запис в уики. Ако кодът е достатъчно добър (предполагам, че това е, защото Django има доста добра общност), можете да рефакторирате това, за да използвате компоненти. Изгледът за създаване на запис трябва да се използва някаква форма, която можете да включите в своя собствена И изгледът за получаване на най-високо класирани тагове вероятно използва някаква полезна функция или някакъв метод на мениджъра на маркери. В такъв случай можете да го рефакторирате според вашите собствени нужди.

Надявам се, че помага.