A menudo veo gente que afirma que su servidor se implementa en Django, pero ¿no se supone que Django es para la interfaz? Asumo que el backend se refiere a la lógica de negocios donde el frontend se refiere a la presentación. ¿Me estoy perdiendo de algo?¿Django es para frontend o back-end?
Respuesta
Ninguno.
Django es un marco, no es un idioma. Python es el lenguaje en el que se escribe Django.
Django es una colección de libs de Python que le permite crear de manera rápida y eficiente una aplicación web de calidad, y es adecuada tanto para frontend como para back-end.
Sin embargo, Django es bastante famoso por su "Administrador de Django", un backend generado automáticamente que le permite administrar su sitio web en un abrir y cerrar de ojos para muchos casos de uso simple sin tener que codificar mucho.
Más precisamente, para la interfaz, Django lo ayuda a seleccionar, formatear y visualizar los datos. Cuenta con administración de URL, un lenguaje de plantillas, mecanismo de autenticación, ganchos de caché y varias herramientas de navegación como los paginators.
Para el backend, Django viene con un ORM que le permite manipular su fuente de datos con facilidad, formularios (una implementación independiente de HTML) para procesar la entrada del usuario y validar datos y señales, y la implementación del patrón de observador. Además de un montón de pequeñas herramientas específicas de casos de uso.
Para todo el resto del trabajo de back-end Django no ayuda, solo usa Python regular. La lógica de negocios es un término bastante amplio.
Probablemente también desee saber que Django viene con el concepto de aplicaciones, una biblioteca Django que se puede conectar y que resuelve un problema. La comunidad Django es enorme, por lo que hay numerosas aplicaciones que hacen una lógica comercial específica que Django no tiene.
Si la lógica de negocios está separada de la presentación en una arquitectura de 3 niveles, entonces no debería haber necesidad de utilizar Django para la lógica comercial, ¿verdad? Todas las cosas 'webby' solo están presentes en la capa de presentación, ¿verdad? – Kar
@Kate: en django, es de esperar que la lógica empresarial esté separada de la lógica de presentación. – Marcin
Django incrusta las herramientas para la lógica de negocios también: el ORM y los formularios. No tiene que usarlos, pero lo harán mucho más rápido si lo hace. –
(a) Django es un marco, no es un lenguaje
(b) No estoy seguro de lo que se está perdiendo - no hay ninguna razón por la cual no se puede tener la lógica de negocio en una aplicación web. En Django, normalmente esperaría que la lógica de presentación se separe de la lógica comercial. El hecho de que esté alojado en el mismo servidor de aplicaciones no implica que las dos capas estén enredadas.
(c) Django proporciona plantillas, pero no proporciona bibliotecas ricas para generar contenido del lado del cliente.
Pero si la lógica comercial está en la aplicación web (arquitectura de un solo nivel?), Entonces no hay distinción entre el front-end y el back-end, ¿verdad? Es solo un nivel. – Kar
@Kate: puede tener toda su lógica de presentación en el navegador, la lógica de negocios en un nivel intermedio django y una capa de base de datos. También podría tener un proyecto independiente de django que brinde servicios de back-end. – Marcin
Parece que en realidad está hablando de un patrón MVC (Modelo-Vista-Controlador), donde la lógica se divide en varios "niveles". Django, como marco, sigue a MVC (vagamente). Tiene modelos que contienen su lógica comercial y se relacionan directamente con tablas en su base de datos, vistas que en efecto actúan como el controlador, manejando solicitudes y respuestas de retorno, y finalmente, plantillas que manejan la presentación.
Django no es solo uno de estos, es un marco completo para el desarrollo de aplicaciones y proporciona todas las herramientas que necesita para tal fin.
Frontend vs Backend es todo semántica. Podrías construir una aplicación Django que sea completamente "back-end", usando su paquete incorporado de contrib de administración para administrar los datos de una aplicación completamente separada. O bien, podría usarlo únicamente para "frontend", simplemente usando sus vistas y plantillas, pero usando algo completamente diferente para administrar los datos. Por lo general, se usa para ambos. El administrador incorporado (el "backend") proporciona una manera fácil de administrar sus datos y crea aplicaciones dentro de Django para presentar esos datos de varias maneras.Sin embargo, si estuvieras inclinado, también podrías crear tu propio "back-end" en Django. No estás obligado a usar el administrador predeterminado.
- 1. Solicitud de Magento: ¿Frontend o Backend?
- 2. Java Backend and Rails Frontend
- 3. url_for en backend para frontend - Symfony
- 4. Backend y frontend para una aplicación - Codeigniter
- 5. Django CSRF cuando el backend y el frontend están separados
- 6. ¿Qué es un "backend django"?
- 7. Django Storage Backend para S3
- 8. ¿Los frontend y backend deberían ser manejados por diferentes controladores?
- 9. ¿Cuál es el mejor backend de CouchDB para Django?
- 10. compartiendo plantilla entre frontend y backend (admin o adminhtml) en magento
- 11. Mocking Django Storages Model ImageField backend S3
- 12. Juego multijugador con backend y frontend JavaScript. ¿Cuáles son las mejores prácticas?
- 13. django-apio: Ningún resultado backend configura
- 14. Middleware para MongoDB o CouchDB con jQuery Ajax/JSON frontend
- 15. PyUSB backend no es accesible
- 16. ¿Es posible usar Django con Qooxdoo framework?
- 17. Frontend Backbone.js con back-end RESTful Rails?
- 18. Anular WooCommerce Frontend Javascript
- 19. Backend para desarrollo web utilizando Clojure/ClojureScript
- 20. ¿Crear un backend VHDL para LLVM?
- 21. Django-Socialauth o django-social-auth, ¿cuál es el mejor?
- 22. CouchApp sin Servidor o backend CouchDB con problemas de xdomain?
- 23. Usando MailDir como backend para Gnus
- 24. Django - CSRF token falta o es incorrecto
- 25. ¿Cómo configuro un backend para django-apio? Me puse CELERY_RESULT_BACKEND, pero no se reconoce
- 26. ¿Hay un buen backend de base de datos en Django para Amazon DynamoDB?
- 27. Wiki con svn backend?
- 28. git-http-backend
- 29. Usuarios frontend y back-end independientes con sfDoctrineGuardPlugin
- 30. Magento: ¿Cómo puedo visualizar las configuraciones de configuración de back-end en las páginas frontend CMS (o bloques estáticos)?
La primera página en su [sitio] (https://www.djangoproject.com/) le dice lo que es django: un marco web de Python de alto nivel –
@Marcin Soy muy nuevo en el desarrollo web y estoy ' Estoy confundido acerca de lo que Django podría hacer por la lógica de negocios. Digamos, con un sitio como Paypal, ¿se implementaría todo el proceso de transacción con Django ya que ese es el nivel medio? ¿La lógica de presentación está en el navegador? – Kar
@Kate: Claro, puede ser lo que quieras que sea. Todavía no entiendo por qué estás obsesionado con esta cuestión de terminología. – Marcin