DEV Community

Soumya Ranjan Naik
Soumya Ranjan Naik

Posted on

Django vs Express/Node which one would you choose and why ?

Please explain why would you prefer one over another ?

Top comments (7)

Collapse
 
andrematias profile image
André Matias • Edited

Well, how everything on tecnology my answer is that depends hehe.
For projects with interations directly with the OS I've preferred Django or just python because I've most facilities to work async and sync.
I like to use Express with Node because it's minimal and lets us choose what exacly I want to extends.
Django too lets us change stuffs, but I feel sometimes that I'm hacking the core to do what I need to do.

I love python and I've already learning JavaScript. Both is similars in some aspects but have yours pros and cons.
By the way, are you in some project to have that doubt?

Collapse
 
soumyaranjannaik profile image
Soumya Ranjan Naik

Yes, Actually I am going for a project and I want to have best weapons for the war. I am working on building a Book Reading Platform and wanted to choose one of the two (Although I have around 1 year of experience in Django and almost 0 experience in production ready Node.js) so was just wondering what are the pros and cons. Could you just list them down if possible.

Collapse
 
andrematias profile image
André Matias

Both are excelents frameworks and have a good community behind them. What I could say to you is if your project is a personal project go ahead with Express, it's the best way to learn something new. But if it is a prodution or some project that you will need to do some support I really suggest that you use Django most by your experience. You'll be ready to fix bugs and refactor your code most speedly.

Django have a good integration with databases all into the framework, and its works pretty well, with Express you will install some ORM or database manager to help you, it's fine but you'll need to learn this too.

If you will work with a real time app Node JS is the best with socket.io, is possible do that with Django too, but it's not a semantic way to do that, if you get me.

Collapse
 
itscodingthing profile image
Bhanu Pratap Singh

Short answer is express/node.

Long answer, It depends on the project and the dev experience that how much control and freedom he/she wants on the project. Both are the great tools and both will do the job. It just the choice that we have to make.
Both have the advantages and disadvantages over one another. So preference and choices can differ from one another.

Collapse
 
soumyaranjannaik profile image
Soumya Ranjan Naik

Could you list down the pros and cons if possible so I can have some help in making a choice ?

Collapse
 
itscodingthing profile image
Bhanu Pratap Singh • Edited

I can point out some of things that I have encounter when I did some small projects with Django and Express/node in my college semesters. I would say that the comparison is more like Angular and React the famous frontend libraries (if you are not familiar then it's ok) both are great and both work very well but core difference is the how much control you want over your project.

Django has everything baked in already so you don't have to do much anything as your project grows or as other people said that it is opinionated means if you want to do some certain thing then you have to follow the guidelines or docs. Django has it's own way of doing things like it has it's own routing system, template engine, database integration and if you want to do some other thing you have to hack around or do some research on that to integrate to your build system.

Express for node is like Flask for python it gives you bare minimum things to start and then as your projects grows you have to add things on your own which means it gives you complete control over your project and leave you with your imagination.

As I said already it depends on the project for example if you want a website with lots page and a backend system or anything like that then Django can be very handy because then you don't have waste your time and just dive right into your work but if want something like a small API which give some kind of data rather a page or something then you can use express but if you want to do some API and stuff than you can also use FLASK as well because both the tools do the exact same work so I think it is safe to change the lib rather than change the platform to do same thing. You can do the same thing with Django as well but Django is super bulky and so much boilerplate and other things to just start the project it's like for a small nail you need Thor's hammer (sorry bad joke😂) but I think it clears my point.

Thread Thread
 
soumyaranjannaik profile image
Soumya Ranjan Naik

Thanks for the clarification 😊. It is super helpful.