Django vs Flask vs Node.js

Need advice about which tool to choose?Ask the StackShare community!

Django

23.9K
20.7K
+ 1
3.6K
Flask

13K
10.8K
+ 1
1.5K
Node.js

109.2K
88.8K
+ 1
8.3K
Advice on Django, Flask, and Node.js
Needs advice
on
Node.js
and
Laravel

What will be better Laravel or Node.js to handle a logistics portal which displays thousands (20-50k) of delivery data information in an interactive table (searchable, filterable), live delivery tracking, basic user management, and report creation?

Data comes usually in CSV (manually uploaded or via API from courier companies). Live tracking uses checks tracking numbers on the courier page using API.

See more
Replies (1)
Francis Rodrigues
FullStack JavaScript Developer at PanelADM · | 4 upvotes · 32.3K views
Recommends
Node.js
Laravel

My question for you is: "Which one are you familiar with?" Following your needs, both could do it, but think about it. Now talking about Node.js, in my opinion, if you use JavaScript, there are lots of packages to support your entire project, including native ones for testing TDD and others for BDD. Also the best support on AWS (Amazon Web Services) and GCP (Google Cloud Platform).

See more
Needs advice
on
Flask
and
Django REST framework

Hey! So I am planning to make an e-commerce website with React Native as my frontend technology stack and MongoDB as my database. I was wondering what will be the best REST framework to use for my backend that will simply serve the frontend. Is Django rest framework a good option or should I go with Flask? I am currently leaning towards flask as the development team is well versed in it. Please help!

See more
Replies (2)
Preeti Yuankrathok
Software Consultant at CODIUM · | 2 upvotes · 10.3K views

If the application is simple such as less endpoint or simple logic, I'd suggest Flask. But what you're building is quite a large system that contains many logics and a lot of models. So I'd suggest you with Django and Django REST framework. Django ORM is also one of the best ORM in the world as well.

See more
Mayur Borse
Software Engineer at hyphenOs · | 2 upvotes · 14.5K views
Recommends
fastapi
FastAPI

FastAPI is modern microframework. If you haven't used any of them, I'd suggest FastAPI. Django REST is also good if you have previous experience with it.

See more
Needs advice
on
Node.js
Java
and
Django

I am starting a new project to build a simple ERP system for small businesses, where the owners can also manage orders on their phones.

I have decided to use JavaScript & React on the front-end and MySQL for the database. But I am really struggling to pick a backend language. I'm familiar with Node.js, but when I search for ERP (CRM & order mgt) projects on Youtube, I see that most build with Python (Django). Many also recommend Java.

So I'm a little confused. Please advice.

See more
Replies (10)
Luiz H. Rapatão
Senior Software Engineer at rapatao.com · | 7 upvotes · 24K views
Recommends
Node.js

There is no problem to keep using node.js for your backend. Keep in mind that you already have expertise in it, so you could focus on development instead of to learn a new syntax/framework. There are good libraries in node.js that could help you in the development (services, validations, integrations, etc) also keeps you with a single language to the whole system. Django, as far as I know, it will provide a solid base for you, but it could be too much for your purpose, also could be more complex than you could need. Java provides to you many frameworks to simplify your integrations also could achieve a good performance. Anyway, I recommend you to follow using node.js, since you already know the syntax/platform.

See more
Recommends
Django

Django is best suited for your requirement and has a very good community base to reach out for any queries. I have myself built and seen a lot of stuffs which match your requirement.

See more
Michael R.
Full Stack Web Developer at Safe This Home, LLC · | 3 upvotes · 13.5K views

I recommend Node.js because you are creating a new application and will likely not have a huge workload, at least not initially. Node is incredibly fast and used in more SPA's than any other solution, but as the CPU load increases, the efficiency starts to drop off.

I could see how scalability could eventually become a concern if your SaaS platform becomes extremely popular, but considering that you already know Node, I think it would be wiser to shorten your time to market and develop a quality product rather comfortably.

Otherwise you also run the risk of security flaws due to inexperience with a new framework and that is not something you want when you are handling other people's data.

See more
Recommends
Node.js

Hello, Node.js is simply a better option than python if you wish to make your application real-time operations. Also Node.js is a better choice than python for server side development.

But let's get your problem now. For most ERP projects, Node.js is a better choice. Also, since you are already familiar with Node.js, continue with it. Personally, I think Node.js is way better than Django mainly because JS is the god of ERP projects. Java is a good counterpart though.

See more
Mukesh PM
Recommends
Node.js

I personally suggest NodeJs as you are also familiar with it. Even nodeJS has its own strong frameworks such as NestJS, Loopback etc. And the community is pretty much strong though. If you are looking for a faster development , then always you can go for NodeJS. And its pretty fast though.

See more
Sinisha Mihajlovski
Design Lead | Senior Software Developer at Endava · | 2 upvotes · 15.7K views
Recommends
SugarCRM

Will you build it from scratch? There are some open source ERP/CRM solutions that you can use as a base for your solution. SugarCrm is an example. By looking at those, you can then decide which language you'll use for the backend.

See more
anas mattar
Technical Lead at DPO International · | 1 upvotes · 12.7K views
Recommends

I prefer to use Node.js because you have experainse in it and also you can do anything for this language.

See more
Nicolai Kamphenkel
Full-Stack-Engineer at Kamphenkel Datensysteme GmbH · | 1 upvotes · 14.2K views
Recommends
Node.js
AdonisJS

Hey if you are allready familar with nodejs then just go with it. There are some very nice frameworks out there that can be hold with the big ones.

Examples: AdonisJS or SailsJS

AdonisJS is even very similar like django.

See more

Go with Node.js and use a framework. I can recommend NestJS or Fastifiy as a Backend Framework. They both have a strong community and Fastify is the successor of Express but much faster.

See more
Ruslan Rayanov
Recommends

I can recommend you a flexible constructor for this purpose. To create a system, you only need sql, and you can connect to any database without any problems. Please see the introductory article about the features, and if you are interested, I can provide access to the test site. My contacts for communication are on the site page https://falconspace.site/docs/vvedenie-v-falcon-space--c-chego-nachat https://falconspace.site/for-it

See more
View all (10)
Decisions about Django, Flask, and Node.js
Usman Sadiq
Student at University of Toronto · | 4 upvotes · 7.2K views
Migrated
from
Django
to
Flask
at
()

We decided to migrate our web framework from Django to Flask for a number of reasons. Firstly, Flask is a light-weight framework which makes it easier to use for simpler cases and to build a quick prototype. It gives developers full freedom for what they want their application to look like. With a coherent and neat API, Flask allows easy and flexible configurations along with integrated unit testing support which makes it a great tool. By using Flask, a simple application can be later changed to add more functionality and make it complex. It provides flexibility to expand the application quickly which is harder to do with Django where requirements change dynamically. Moreover, Flask is a minimal yet powerful platform with easy database integration which gives us the opportunity to easily develop and maintain applications. On the other hand, Django has a high learning curve and is a higher entry point for simple solutions. In addition to that, Django requires roughly more than 2 times more lines of code than Flask for the same functionality. Django is suited for bigger projects that need a lot of functionality. For simpler projects like our application, the features might be an overkill. Putting all these factors into consideration, we decided it was best to switch to Flask from Django

See more

We choose Next.js for our React framework because it's very minimal and has a very organized file structure. Also, it offers key features like zero setups, automatic server rendering and code splitting, typescript support. Our app requires some loading time to process the video, server-side rendering will allow our website to display faster than client-side rending.

See more
  • Server Side: \ For the server, we decide to mainly focus on Python since it is the most popular language for machine learning and our product will be focused on computer vision based on machine learning. Besides, every member of the team is proficient in Python and capable to contribute to both development and testing. Moreover, there are lots of machine learning libraries available for Python and we will be using PyTorch. Another factor that leads to this decision is Dr. Tsai provides us an existing solution for other sports and it is using Python and PyTorch and it is working pretty well. So we decide to stay with these tools to develop our product so that it is much easier not only for us to get started but also for our primary customer to accept and use it as a solution. Since we are building a backend server, we will also use Flask which is a microframework for Python web development. We have considered using Django but Flask is more lightweight than Django and Flask could help to keep the code simple and clean. Although Flask is a microframework, it has a large number of libraries and it could be as powerful as Django with those libraries while not containing any unwanted functionalities. As for deployment, we decide to deploy our web app on Heroku for the demonstration purpose of the course. The biggest advantage of Heroku is it is completely free but it could fulfill our needs in the early stage of development. However, it might be a good idea to deploy it in CSI’s server for the production version since the data it collects and stores could potentially contain sensitive and confidential information.
See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Django
Pros of Flask
Pros of Node.js
  • 619
    Rapid development
  • 459
    Open source
  • 394
    Great community
  • 344
    Easy to learn
  • 256
    Mvc
  • 208
    Beautiful code
  • 207
    Elegant
  • 187
    Free
  • 186
    Great packages
  • 173
    Great libraries
  • 63
    Restful
  • 60
    Powerful
  • 59
    Comes with auth and crud admin panel
  • 55
    Great documentation
  • 52
    Great for web
  • 41
    Python
  • 35
    Great orm
  • 31
    Great for api
  • 24
    All included
  • 20
    Web Apps
  • 19
    Fast
  • 16
    Used by top startups
  • 14
    Clean
  • 13
    Sexy
  • 12
    Easy setup
  • 10
    Convention over configuration
  • 7
    ORM
  • 7
    Allows for very rapid development with great libraries
  • 7
    The Django community
  • 5
    Its elegant and practical
  • 5
    Great MVC and templating engine
  • 4
    Full stack
  • 4
    Mvt
  • 4
    Easy Structure , useful inbuilt library
  • 4
    Fast prototyping
  • 4
    Easy to develop end to end AI Models
  • 3
    Easy
  • 3
    Easy to use
  • 3
    King of backend world
  • 3
    Cross-Platform
  • 3
    Batteries included
  • 3
    Have not found anything that it can't do
  • 2
    Scaffold
  • 2
    Zero code burden to change databases
  • 2
    Full-Text Search
  • 2
    Map
  • 2
    Modular
  • 2
    Very quick to get something up and running
  • 2
    Many libraries
  • 2
    Python community
  • 2
    Great peformance
  • 2
    Just the right level of abstraction
  • 1
    Easy to change database manager
  • 305
    Lightweight
  • 263
    Python
  • 210
    Minimal
  • 141
    Open source
  • 96
    Documentation
  • 64
    Easy to use
  • 53
    Easy to setup and get it going
  • 52
    Well designed
  • 46
    Easy to develop and maintain applications
  • 44
    Easy to get started
  • 15
    Beautiful code
  • 14
    Rapid development
  • 12
    Expressive
  • 12
    Powerful
  • 12
    Awesome
  • 11
    Speed
  • 10
    Love it
  • 9
    Simple to use
  • 9
    Flexibilty
  • 8
    For it flexibility
  • 8
    Easy to integrate
  • 8
    Get started quickly
  • 8
    Perfect for small to large projects with superb docs.
  • 7
    Productive
  • 7
    Flexibilty and easy to use
  • 7
    Customizable
  • 6
    Flask
  • 6
    Not JS
  • 5
    User friendly
  • 5
    Secured
  • 4
    Unopinionated
  • 0
    Secure
  • 1.4K
    Npm
  • 1.3K
    Javascript
  • 1.1K
    Great libraries
  • 1K
    High-performance
  • 791
    Open source
  • 480
    Great for apis
  • 471
    Asynchronous
  • 417
    Great community
  • 387
    Great for realtime apps
  • 292
    Great for command line utilities
  • 78
    Node Modules
  • 76
    Websockets
  • 65
    Uber Simple
  • 53
    Great modularity
  • 53
    Allows us to reuse code in the frontend
  • 38
    Easy to start
  • 33
    Great for Data Streaming
  • 29
    Realtime
  • 25
    Awesome
  • 23
    Non blocking IO
  • 16
    Can be used as a proxy
  • 15
    High performance, open source, scalable
  • 14
    Non-blocking and modular
  • 13
    Easy and Fun
  • 12
    Same lang as AngularJS
  • 11
    Easy and powerful
  • 10
    Future of BackEnd
  • 9
    Fast
  • 8
    Scalability
  • 8
    Cross platform
  • 8
    Fullstack
  • 7
    Mean Stack
  • 7
    Simple
  • 5
    Easy concurrency
  • 5
    Great for webapps
  • 5
    React
  • 4
    Friendly
  • 4
    Easy to use and fast and goes well with JSONdb's
  • 4
    Typescript
  • 4
    Fast, simple code and async
  • 3
    Its amazingly fast and scalable
  • 3
    Scalable
  • 3
    Great speed
  • 3
    Fast development
  • 3
    Isomorphic coolness
  • 3
    Control everything
  • 2
    It's fast
  • 2
    Not Python
  • 2
    Blazing fast
  • 2
    One language, end-to-end
  • 2
    TypeScript Support
  • 2
    Easy to learn
  • 2
    Javascript2
  • 2
    Easy to use
  • 2
    Less boilerplate code
  • 2
    Sooper easy for the Backend connectivity
  • 2
    Great community
  • 2
    Scales, fast, simple, great community, npm, express
  • 2
    Performant and fast prototyping
  • 1
    Easy
  • 1
    Lovely
  • 0
    Event Driven

Sign up to add or upvote prosMake informed product decisions

Cons of Django
Cons of Flask
Cons of Node.js
  • 24
    Underpowered templating
  • 19
    Underpowered ORM
  • 18
    Autoreload restarts whole server
  • 15
    URL dispatcher ignores HTTP method
  • 10
    Internal subcomponents coupling
  • 7
    Not nodejs
  • 7
    Admin
  • 6
    Configuration hell
  • 3
    Not as clean and nice documentation like Laravel
  • 3
    Bloated admin panel included
  • 3
    Python
  • 2
    Overwhelming folder structure
  • 2
    Not typed
  • 1
    InEffective Multithreading
  • 10
    Not JS
  • 7
    Context
  • 3
    Not fast
  • 46
    Bound to a single CPU
  • 40
    New framework every day
  • 34
    Lots of terrible examples on the internet
  • 28
    Asynchronous programming is the worst
  • 22
    Callback
  • 16
    Javascript
  • 11
    Dependency based on GitHub
  • 10
    Dependency hell
  • 10
    Low computational power
  • 7
    Can block whole server easily
  • 6
    Very very Slow
  • 6
    Callback functions may not fire on expected sequence
  • 3
    Unneeded over complication
  • 3
    Unstable
  • 3
    Breaking updates
  • 1
    No standard approach

Sign up to add or upvote consMake informed product decisions

What is Django?

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

What is Flask?

Flask is intended for getting started very quickly and was developed with best intentions in mind.

What is Node.js?

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Need advice about which tool to choose?Ask the StackShare community!

What companies use Django?
What companies use Flask?
What companies use Node.js?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with Django?
What tools integrate with Flask?
What tools integrate with Node.js?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

Oct 24 2019 at 7:43PM

AppSignal

+8
5
685
Oct 3 2019 at 7:13PM

Ably Realtime

+8
4
3197
+6
1
1116
+5
7
1620
What are some alternatives to Django, Flask, and Node.js?
Rails
Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.
Laravel
It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.
PHP
Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.
WordPress
The core software is built by hundreds of community volunteers, and when you’re ready for more there are thousands of plugins and themes available to transform your site into almost anything you can imagine. Over 60 million people have chosen WordPress to power the place on the web they call “home” — we’d love you to join the family.
Drupal
Drupal is an open source content management platform powering millions of websites and applications. It’s built, used, and supported by an active and diverse community of people around the world.
See all alternatives
Reviews of Django, Flask, and Node.js
Software Engineer at TestDriven Labs
Review of
Flask

Flask is a light, yet powerful Python web framework perfect for quickly building smaller web applications. It's a "micro-framework" that's easy to learn and simple to use, so it's perfect for those new to web development as well as those looking to rapidly develop a web application.

Web Developer, Freelancer
Review of
Node.js

I have benchmarked Node.js and other popular frameworks using a real life application example. You can find the results here: https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3

How developers use Django, Flask, and Node.js
MaxCDN uses
Node.js

We decided to move the provisioning process to an API-driven process, and had to decide among a few implementation languages:

  • Go, the server-side language from Google
  • NodeJS, an asynchronous framework in Javascript

We built prototypes in both languages, and decided on NodeJS:

  • NodeJS is asynchronous-by-default, which suited the problem domain. Provisioning is more like “start the job, let me know when you’re done” than a traditional C-style program that’s CPU-bound and needs low-level efficiency.
  • NodeJS acts as an HTTP-based service, so exposing the API was trivial

Getting into the headspace and internalizing the assumptions of a tool helps pick the right one. NodeJS assumes services will be non-blocking/event-driven and HTTP-accessible, which snapped into our scenario perfectly. The new NodeJS architecture resulted in a staggering 95% reduction in processing time: requests went from 7.5 seconds to under a second.

Trello uses
Node.js

The server side of Trello is built in Node.js. We knew we wanted instant propagation of updates, which meant that we needed to be able to hold a lot of open connections, so an event-driven, non-blocking server seemed like a good choice. Node also turned out to be an amazing prototyping tool for a single-page app. The prototype version of the Trello server was really just a library of functions that operated on arrays of Models in the memory of a single Node.js process, and the client simply invoked those functions through a very thin wrapper over a WebSocket. This was a very fast way for us to get started trying things out with Trello and making sure that the design was headed in the right direction. We used the prototype version to manage the development of Trello and other internal projects at Fog Creek.

AngeloR uses
Node.js

All backend code is done in node.js

We have a SOA for our systems. It isn't quite Microservices jsut yet, but it does provide domain encapsulation for our systems allowing the leaderboards to fail without affecting the login or education content.

We've written a few internal modules including a very simple api framework.

I ended up picking Node.js because the game client is entirely in JavaScript as well. This choice made it a lot easier for developers to cross borders between being "client side" game developers and "server side" game developers. It also meant that the pool of knowledge/best practices is applicable almost across the company.

Tony Manso uses
Node.js

Node.js is the foundation for the server. Using Express.js for serving up web content, and sockets.io for synchronizing communications between all clients and the server, the entire game runs as Javascript in Node.js.

I don't know how well this will scale if/when I have hundreds of people connected simultaneously, but I suspect that when that time comes, it may be just a matter of increasing the hardware.

As for why I chose Node.js... I just love JavaScript! My code is all original, meaning that I didn't have to inherit anyone's bad Javascript. I'm perfectly capable of creating my own bad Javascript, thank you! Also, npm rocks!

Tarun Singh uses
Node.js

Used node.js server as backend. Interacts with MongoDB using MongoSkin package which is a wrapper for the MongoDB node.js driver. It uses express for routing and cors package for enabling cors and eyes package for enhancing readability of logs. Also I use nodemon which takes away the effort to restart the server after making changes.

MOKA Analytics uses
Django

Django takes the hassle out of building an enterprise web application using Python.

  • admin app for administration
  • ORM for deploying against different database vendors
  • social auth package for authentication with enterprise IdP
  • guardian package for authorization
Jack Littleton uses
Flask

I use Flask for times when I need to create a REST API that interfaces with other Python code, or there is no specific reason why I'd want to use Node.JS. I prefer Flask because of its small learning curve, allowing me to get started coding as quickly as possible

Yaakov Gesher uses
Django

Our backend was written in Django. We took advantage of the ready-to-go admin interface as a go-to solution for the client to be able to authorize his users, as well as other functionality, while most of the work was done through the Django Rest Framework.

Blair Gemmer uses
Django

Hands down the best Python web framework I've used. Very easy to extend and add apps and go from 0 to full project quickly and painlessly. I built a fully authenticated project with a single endpoint in less than 30 minutes.

Cloudify uses
Flask

This lightweight web framework enables quick REST API development while enabling easy clustering, and the usage of multiple worker processes required to scale the REST API service to meet high volume requirements.

Kang Hyeon Ku uses
Django

정말 편리하고 많은것을 알아서 제공해 주는 프레임워크 이다. 책의 예제만 진행해서 많이 써보지는 못했지만, 쉽게 쉽게 웹을 개발 할 수 있는 점이 매력적 이다. 게다가 orm 이 기본으로 내장 되어 있고 db 도 sqlite 가 기본으로 되어있어. 그냥 django 만 설치하면 바로 웹개발이 가능하다.

Seungkwon Park uses
Django

django는 저의 무기입니다.

django 이외에 flask로 간단한 restful api를 만들면서 느낀점은 framework 보다 언어가 중요하다는것을 알았고 django가 얼마나 큰 framework인지 알게되었습니다.

저는 signal 사용을 좋아합니다.

Sail Tactics uses
Flask

Service to query NOAA weather forecasts data and service to build tidal current forecast maps using AWS EC2 and Geoserver

OnlineCity uses
Flask

Flask drives our APIs, both the Website APIs and the majority of the REST Messaging APIs

papaver uses
Flask

used flask for a few personal projects. enjoyed its simplicity and ease of use.