2012-01-31 12 views
11

Często widzę, że ludzie twierdzący, że ich backend jest zaimplementowany w Django, ale czy Django nie ma być w interfejsie? Zakładam, że backend odnosi się do logiki biznesowej, w której frontend odnosi się do prezentacji. Czy czegoś brakuje?Czy Django jest dla frontendu lub zaplecza?

+1

Pierwsza strona na stronie [site] (https://www.djangoproject.com/) mówi, czym jest django: wysokopoziomowa architektura internetowa Python –

+1

@Marcin Jestem bardzo nowy w tworzeniu stron internetowych. Jestem po prostu zdezorientowany tym, co Django może zrobić dla logiki biznesowej. Powiedzmy, że w witrynie takiej jak Paypal wszystkie procesy transakcyjne byłyby realizowane za pomocą Django, ponieważ jest to warstwa pośrednia? Czy logika prezentacji jest w przeglądarce? – Kar

+0

@Kate: Oczywiście, może być to, co chcesz. Nadal nie rozumiem, dlaczego jesteś powiesił się na tym zagadnieniu terminologii. – Marcin

Odpowiedz

38

Ani.

Django to framework, a nie język. Python jest językiem, w którym napisane jest Django.

Django to zbiór bibliotek w języku Python, umożliwiający szybkie i wydajne tworzenie wysokiej jakości aplikacji internetowych i odpowiedni zarówno dla frontendu, jak i backendu.

Jednak Django jest dość znane ze swojego "admin Django", automatycznie generowanego backendu, który pozwala ci zarządzać twoją stroną internetową w mgnieniu oka na wiele prostych zastosowań bez konieczności pisania kodu.

Dokładniej, z przodu, Django pomaga w wyborze danych, formatowaniu i wyświetlaniu. Zawiera zarządzanie adresami URL, język szablonów, mechanizm uwierzytelniania, przechwyty bufora podręcznego i różne narzędzia nawigacyjne, takie jak paginatory.

Dla backendu, Django posiada ORM, który pozwala z łatwością manipulować źródłem danych, formularze (implementacja niezależna od HTML) w celu przetwarzania danych wprowadzanych przez użytkownika oraz sprawdzania poprawności danych i sygnałów, a implementacja wzoru obserwatora. Plus mnóstwo przydatnych małych, przydatnych narzędzi.

Cała reszta pracy backendu Django nie pomaga, wystarczy użyć zwykłego Pythona. Logika biznesowa jest dość szerokim pojęciem.

Prawdopodobnie chcesz również wiedzieć, że Django zawiera koncepcję aplikacji, samodzielnie zawierającą wtyczkę bibliotekę Django, która rozwiązuje problem. Społeczność Django jest ogromna, a więc istnieje wiele aplikacji, które wykonują specyficzną logikę biznesową, której nie ma Vanilla Django.

+0

Jeśli logika biznesowa jest oddzielona od prezentacji w architekturze trójwarstwowej, nie powinno być potrzeby używania Django do logiki biznesowej, prawda? Wszystkie elementy "webby" są obecne tylko w warstwie prezentacji, prawda? – Kar

+0

@Kate: W django można oczekiwać, że logika biznesowa zostanie oddzielona od logiki prezentacji. – Marcin

+0

Django zawiera narzędzia do logiki biznesowej: ORM i formularze. Nie musisz ich używać, ale sprawią, że będziesz rozwijał się znacznie szybciej, jeśli to zrobisz. –

3

(a) Django to framework, a nie język

(b) Nie jestem pewien, co tracisz - nie ma powodu, dlaczego nie może mieć logiki biznesowej w aplikacji internetowej. W Django zwykle oczekuje się, że logika prezentacji zostanie oddzielona od logiki biznesowej. Tylko dlatego, że jest hostowany na tym samym serwerze aplikacji, nie wynika z tego, że te dwie warstwy są splątane.

(c) Django zapewnia szablony, ale nie zapewnia bogatych bibliotek do generowania treści po stronie klienta.

+0

Ale jeśli logika biznesowa jest w aplikacji internetowej (architektura jednopoziomowa?), To nie ma różnicy między front-endem a back-endem, prawda? To tylko jeden poziom. – Kar

+0

@Kate: Możesz mieć całą logikę prezentacji w przeglądarce, logikę biznesową w warstwie pośredniej Django i warstwę bazy danych. Możesz również mieć osobny projekt django, który zapewnia także usługi backendu. – Marcin

4

Wygląda na to, że mówisz o wzorze MVC (model-widok-kontroler), w którym logika jest podzielona na różne "warstwy". Django, jako framework, podąża za MVC (luźno). Masz modele, które zawierają logikę biznesową i odnoszą się bezpośrednio do tabel w bazie danych, widoków, które działają tak jak kontroler, obsługują żądania i zwracające odpowiedzi, a wreszcie szablony obsługujące prezentację.

Django to nie tylko jedna z nich, to kompletne ramy do tworzenia aplikacji i zapewnia wszystkie narzędzia potrzebne do tego celu.

Frontend vs Backend to cała semantyka. Możesz potencjalnie zbudować aplikację Django, która jest całkowicie "zapleczem", używając wbudowanego pakietu administracyjnego contrib do zarządzania danymi dla całkowicie oddzielnej aplikacji. Możesz też użyć go wyłącznie do "frontendu", korzystając tylko z jego widoków i szablonów, ale wykorzystując coś zupełnie innego do zarządzania danymi. Najczęściej jest używany do obu. Wbudowany administrator ("backend") zapewnia łatwy sposób zarządzania danymi i budowania aplikacji w Django, aby prezentować te dane na różne sposoby.Jednakże, jeśli byłbyś tak bardzo skłonny, mógłbyś również stworzyć swój własny "backend" w Django. Nie musisz używać domyślnego administratora.

Powiązane problemy