@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.

Reply via email to