Hacker News new | ask | show | jobs
by nikisweeting 3422 days ago
If you're curious about how to set up a modern JS frontend on top of Django, I wrote up a tutorial recently. It might be helpful if you're debating between trying a Single Page App approach or some other design: https://medium.com/@theSquashSH/reconciling-djangos-mvc-temp...
7 comments

To easily make a modern feeling frontend, whilst taking advantage of Django's backend, and without taking on all of the complexity of frontend SPA focused frameworks, I can highly recommend IntercoolerJS: http://intercoolerjs.org/

Clearly it depends what your use-cae is, but for a large class of apps that you'd build with Django it feels just right for me: http://intercoolerjs.org/2016/10/05/how-it-feels-to-learn-in...

Not to go too far off topic, but I wish intercooler were just built into html6 or bootstrap. It's full of all the most common things that you wish you didn't need to write a full js app to do.
And if you're going down the React + Redux + REST framework path and need a boilerplate to start off on, I'd highly recommend Seedstars': https://github.com/Seedstars/django-react-redux-base
Looking only at the JS part of this boilerplate and the amount of dependencies I think to myself: "this cannot be right". It reminds me of my early Java days with bad system frameworks which needs a tremendous amount of boilerplate to get running. Maybe it's the right way to go for big production systems, nevertheless... don't like it much. But on the other hand it looks pretty complete regarding tests and there is not much to add.
Care to share why?

My apologies if you have street cred in the field, but I don't know you, so have no reason to trust your recommendation. Please tell me what makes this particular project better than any alternatives.

No street card to offer --- just a developer passing on some knowledge. I've been using Django for the past two years and React + Redux for the past year. I've scoured around for boilerplates and that's the one that worked for me the best. YMMV
Thanks.
I've been using react for various components inside a somewhat standard django application through https://github.com/owais/django-webpack-loader . It works by having your webpack pipeline spit a webpack-stats.json that a django's template tag reads and uses to output things in your template.

The setup is not really straight forward, and generally I have problems mixing django static files in my .scss url() , so this is far from perfect. I'm using it with a main .ts file that requires various components based on the class of body tag, so I can use this in simple reload request use case. Also I've complicated things a little so my webpack bundles are collected as other static files and my static template tag also works.

But yeah, using react in typescript and sass in this way for the frontend has accelerated my development a lot.

I think one important lesson here is that by abandoning the traditional SPA approach, you're also opening up your site to be indexed by search engine crawlers much more easily.
this is something i struggle to understand. especially with SSR/isomorphic rendering.

the vast majority of websites that need indexing should not need JS to create the html.

the vast majority of web apps that benefit from being SPAs are behind some form of login/auth and so do not need indexing.

yet there's this obsession with writing SPAs that can be pre-rendered for better indexing. i only assume this is a solution to the desire of using nodejs and javascript as a server-side language regardless of merit.

Some sites are a combination of content (blog, products etc) and a login area with a complex UI. A SPA works well for sophisticated user interfaces but is overkill for content that is just for reading. But then you have to decide is it worth jumping back and forth between JS and your server side language (Java/Ruby/Python) or maybe it would be nice to just have one language to rule them all...
Well, this is exactly what I was looking for. I am still a pretty new, self taught developer, and during my trials and tribulations I fell in love with python and django. Now it seems React is the cat's meow, so I have started to look into it and was wondering how it could work well with Django. Than k you
This is a great idea. I'm currently using the SPA + granular API method for my Angular + Django projects. It's working well enough, but your method seems much more elegant, I can already imagine the benefits. We also have a team currently looking for the best way they can integrate PHP and React, and I'm going to share this with them. Thank you!
The tutorial mentions server side rendering is easier using this approach, but doesn't mention how it is done.

Since the html output is minimal, presumably you require something like python-react that pipes the output through a nodejs server?

Presumably building the same in a React SPA using Django, that would also mean maintaining the routing system in two different frameworks at once?