2017-11-30 2 views
1

Ich möchte Sie fragen, ob Sie mir etwas klar machen können. Ich entwerfe eine Web-App, die von Django unterstützt wird, und ich lerne auch über OOP, während ich gehe.Klassenbasierte Ansichten in Django

Von was verstehen Hauptzweck der klassenbasierten Ansichten ist, meinen Code DRY zu halten. Um wiederholten oder redundanten Code zu vermeiden.

Ich habe versucht, klassenbasierte Ansichten zu implementieren, aber am Ende habe ich immer alles in eine funktionsbasierte Ansicht geworfen, weil alle Ansichten ziemlich einzigartig sind.

Als ich mir die Ansichten ansah, fragte ich mich: "Wiederholt sich der Code irgendwo?" Antwort war nein.

Die Frage ist: Obwohl die Verwendung von klassifizierten Ansichten als die beste Kodierungspraxis angesehen wird, ist dies nicht immer möglich. Habe ich recht ?

Antwort

1

Klassenbasierte Ansichten sind von Natur aus nicht besser als funktionsbasierte Ansichten. In vielen Fällen ist es eine Frage der Präferenz. Wenn Sie jedoch in Django weiterkommen, werden Sie feststellen, dass viele der Funktionen, die Sie verwenden, in derselben Ansicht verwendet werden (z. B. Laden einer Vorlage) und Sie möglicherweise ein vorhandenes Standard-CBV leichter ändern oder erweitern können als jedes Mal eine brandneue Funktion zu schreiben.

Ihre Frage wird wahrscheinlich als meinungsbasiert geschlossen, aber ich empfehle, dass Sie das, was Sie haben, zum Code Review Stack Exchange mitnehmen und dort ein Feedback erhalten.

https://simpleisbetterthancomplex.com/article/2017/03/21/class-based-views-vs-function-based-views.html

+0

Danke dafür. –

+0

Ja ... die Render-Anweisung ist die einzige Zeile, die sie alle gemeinsam haben. –

+1

Klassenbasierte Ansichten können Sie auch viele der Methoden überschreiben, die sie antreiben, wie get_context_data, form_valid, get_success_url, etc. Sie mögen zunächst zu restriktiv erscheinen, aber indem Sie alles überschreiben, was Sie brauchen, können sie alles tun tun können. –

Verwandte Themen