@Kelly Nicholes In backbone.js everything is in JS, meaning that there could be no conflict between declarative code and Django handled templates. If I can expose my python models, through auto serialization (JSON) from Django, I can see a productivity win. But I'm a little afraid of the tight coupling in data models between back-end and front-end. My main concern is that I'll have to rewrite large parts of JS if/when the models change. Have you any experience ironing out these issues? Maybe it's not a problem but I lack experience with both frameworks.
I'll look more into backbone.js :) Den onsdag den 5. september 2012 16.34.29 UTC+2 skrev Kelly Nicholes: > > It would be a travesty to not mention backbone.js. > > On Tuesday, September 4, 2012 7:39:49 AM UTC-6, dotnetCarpenter wrote: >> >> Hi all. >> >> I'm new here and just took over a Django project for the first time. I'm >> still getting to grip with Django but as a front end dev for the past 5 >> years, I'm also looking for a client-side library/framework to go together >> with my project. >> My requirements for a JS framework is that it: >> >> 1. is unobtrusive (Django rendered HTML will be shown to scraper bots >> like google) >> 2. provides some sort of structure (MVC, MVP, MVVM ect.) >> 3. embraces standards >> 4. doesn't conflict with Django templates or does so intentionally >> 5. ideally uses the same template language as Django >> >> In the ideal world a request/response scenario would look like this: >> >> 1. A client make a (HTTP) request to the (django powered) web site >> with (HTTP) Accept header text/html >> 2. Django response in the usual way by rendering the assign View >> (django template) >> 3. The view figure out if JS is supported (implemented in JS). If no, >> this scenario stays in loop 1-3. If yes, then 4. >> 4. The client (usually a browser) wire up the client-side app >> structure, hook in to URI links, add transitions between views, >> data-bindings ect. >> 5. Subsequent request are now handle by the JS framework, either user >> initiated (e.g. clicking a link) or app initiated (e.g. pulling extra >> data), that will modify the request header to Accept header >> application/json or application/django-template. >> 6. If django receive a request with an application/django-template >> header it will serve the view as plain text. E.g. Content-type: >> text/plain. >> On the other hand if django receive a request with application/json, it >> will send the object model defined in the view as JSON. >> 7. The client-side JS framework will receive a template to render in >> the first request and the data to render in the template in the second >> request. A promise object could be used to synchronize the two calls. >> >> This way django will work as intended for non JS clients and silently >> convert to a RIA in clients that supports JS, with minimal double work for >> the two execution contexts. >> A big pro in this is the fact that both django and the JS framework share >> template and data (only has to defined once - in django) - we'll duck type >> all the way. But does this JS framework exist? Does anyone have any >> experience with working with django and JS frameworks? Is there any obvious >> pitfalls in my ideal world scenario in regard to Django? And finally, is it >> possible to serve templates as plain text with django? >> >> >> Cheers, Jon and thanks in advance >> >> PS. I accidentally cross-posted this to the Django Developers group >> before realizing it was the wrong forum. Sorry about that. >> >> -- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/eGLc5LTL5_sJ. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.