2012-08-01 7 views
14

He leído un par de artículos sobre el uso de nuevos marcos JS como Backbone.js o Ember.jsusando backbone/ember ¿hace que django sea una API REST simple?

he llegado a esta declaración: Si utilizo un marco JS como Backbone.js/Ember.js, Luego muevo la lógica desde el back-end (Django) al front-end.

Por lo tanto, ¿se utilizará Django solo para sus Modelos? Eso significa que Django Views y Django Template ya no son necesarios y el back-end de Django se convierte en una API REST "básica" que será consumida por el front-end.

¿Estás de acuerdo? ¿Es entonces el propósito de Django en este caso?

¿Está convirtiendo el backend de django en una API REST uno de los casos de uso más adecuados cuando se utiliza un framework como Backbone.js/Ember.js para el front-end?

Gracias.

Respuesta

13

Django está perfectamente bien para ser utilizado de esta manera, todavía obtiene el administrador, los modelos, el orm y todos los complementos de terceros. Sin embargo, no es tremendamente rápido, por lo que si está haciendo un mapeo REST no relacional a nivel de documento, es posible que desee examinar node.js y mongoDB, por ejemplo.

Si usted se está pegando con Django (como somos, nos gusta la estructura que nos da), puede utilizar uno de los plugins REST:

Si sólo desea trabajar con el desarrollo frontend, backend de partida de los de reparto a-Service lugares como cloudmine.me o firebase.com que manejan todas las cosas de back-end para usted, por un precio, por supuesto.

+0

Ok, ya probé las dos primeras. Sin embargo, la integración con la red troncal no parece sencilla. Parece que tengo que anular algunas cosas en la columna vertebral ... ¿Hay alguna forma práctica de hacer que uno u otro trabaje de inmediato con la columna vertebral de una manera sencilla con un mínimo de configuración? Gracias. – Michael

+0

Tenemos una configuración DRF y Backbone bastante personalizada con sincronización anulada y más. Usamos DRF no debido a la compatibilidad de fábrica, sino más porque es fácil de personalizar. Voy a actualizar mi respuesta con más información –

+0

Ok, si supongo que tendré que pasar por la personalización de la sincronización Backbone, etc. de todos modos. – Michael

0

Sí, eso es todo. Puede usarlo para administrar la autenticación a los recursos y tal y tal vez usar una vista principal para su aplicación, pero no necesitará usar la plantilla del lado del servidor ya que estas estructuras están hechas para funcionar con la respuesta json/xml.

Es por eso que mucha gente se está moviendo a un backend/backbone o un combo más ligero en lugar de una solución completa como django. También puede usar su django para almacenar en caché la respuesta json, lo que hace que su aplicación parezca más rápida.

+0

¿Tiene algún ejemplo de backend más ligero que pueda reemplazar a Django en este caso? – Michael

1

Django puede parecer innecesario una vez que comienzas a pensar en soluciones de una sola página y aplicaciones de Javascript, pero si quieres que tu sitio sea "a prueba de fallas" no sería imposible desarrollar una versión de Javascript tanto del lado del cliente del sitio como así como un lado django de back-end en caso de que el usuario, o el javascript de su sitio, falle en algún nivel. Por supuesto, esto requiere crear su sitio dos veces, y probablemente no sea necesario en la era de los navegadores modernos, pero esa sería una de las pocas instancias en las que combinaría las dos para una solución completa.

0

Estamos haciendo eso y usamos django-piston para que sea más fácil para usted.

0

Normalmente, usted hace todo su sitio web en Django y solo una página será una "sola página de la aplicación" que utiliza la red troncal.js, generalmente esa página es muy interactiva, con muchas actualizaciones pequeñas que ocurren con frecuencia y deben mostrarse rápidamente al usuario. Esta página, debido a la gran cantidad de cambios e interacciones del usuario, se construye en el lado del cliente para que usted use los recursos de su PC y no los del servidor, el resto de las páginas puede usar django porque le ofrece una seguridad muy estable y segura. marco para el lado del servidor