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

Django

37.7K
34.1K
+ 1
4.2K
PyCharm

27.9K
23.7K
+ 1
451
Add tool

Django vs PyCharm: What are the differences?

Introduction

Django and PyCharm are both popular tools used in web development. While Django is a high-level Python web framework, PyCharm is a Python IDE (Integrated Development Environment). In this article, we will discuss the key differences between Django and PyCharm.

  1. Development Role: Django is a web framework that provides a structure and tools for building web applications, while PyCharm is an IDE designed specifically for Python development. Django offers a complete development environment for building web applications, including a URL routing system, database connectivity, and template engine. On the other hand, PyCharm is a powerful IDE that provides various features such as code editing, debugging, and project management specifically for Python programming.

  2. Framework vs IDE: Django is a framework that follows the Model-View-Controller (MVC) architectural pattern and provides a set of pre-built components and APIs for web development. It allows developers to focus on the application logic rather than on the low-level implementation details. PyCharm, on the other hand, is an IDE that offers a comprehensive development environment with advanced features like intelligent code completion, code refactoring, version control integration, and debugging tools.

  3. Platform Independence: Django is platform-independent, which means it can run on any platform that supports Python. It is compatible with different operating systems, including Windows, macOS, and Linux. PyCharm, being an IDE, is also platform-independent and can be used on various operating systems. This allows developers to work seamlessly on different platforms without any compatibility issues.

  4. Project Setup: Django provides command-line tools and a project structure that helps developers quickly set up a new Django project. It includes a built-in development server and automatically generates the required files and folders for a Django project. PyCharm, on the other hand, simplifies the project setup process by providing a user-friendly interface for creating new projects. It offers project templates and guides developers through the setup process with its intuitive interface.

  5. Code Navigation and Assistance: PyCharm offers advanced code navigation features, such as code navigation, code completion, and refactoring tools. It provides smart suggestions and autocompletion, making it easier for developers to write code and navigate through the project. Django, being a web framework, also provides code navigation assistance, but it focuses more on providing tools and APIs specifically designed for web development.

  6. Deployment and Hosting: Django provides built-in support for handling deployment tasks and offers various options for hosting Django applications, including on-premises servers, cloud-based platforms like AWS and Heroku, and containerization platforms like Docker. PyCharm, being an IDE, does not directly handle deployment tasks but provides integration with deployment tools and platforms, making it easier for developers to deploy their projects.

In summary, Django is a web framework that simplifies web development by providing a complete set of tools and components, while PyCharm is an IDE that offers a comprehensive development environment for Python programming. Django focuses on web application development, while PyCharm offers a range of features for code editing, debugging, and project management.

Advice on Django and PyCharm
Needs advice
on
DjangoDjango
and
SpringSpring

I am a graduate student working as a software engineer in a company. For my personal development, I want to learn web development. I have some experience in Springboot while I was in university. So I want to continue with spring-boot, but I heard about Django. I'm reaching out to the experts here to help me choose a future proof framework. Django or Spring Boot?

Thanks in Advance

See more
Replies (5)
Recommends
on
SpringSpring

Kamrul Hasan, Don't choose dying technologies with small communities. How many startups do you think use Spring and Django? Use Google Trends to compare technologies. Study the StackOverflow developer survey and job websites to see what technologies are wanted. Few teams can afford to train you to get up to their level so be a life-long learner. Embrace the dawn of a new industry and become an expert.

See more
Sulaiman Sanusi
Recommends
on
SpringSpring

I recommend you stick to Java Spring as you already have experience with the technology, i suggest you master this technology and then if Django seam to be very interesting to you, django is a framework you can easily pickup as python is also easy, you have to probably be able to manage the context switching between a static typed language like Java to dynamic language like python

See more
Christoph Becker
Recommends
on
DjangoDjangoSpringSpring

It depends on what you want. Spring is Java-based whereas Django is Python-based. The question rather is Java vs Python. I personally recommend Python as it's shorter and easy to learn. But Java has advantages in really big systems.

See more
Gonzalo Fernández
Recommends

Hi Kamrul,

It really depends on the kind of project and whether you feel more comfortable with Java or Python. Both are excellent frameworks, with a huge community and learning material. I've been working with Spring Boot since I started coding almost and I can assure you it's the perfect combination for Java. The learning curve may be harder that Django, but once you know the basics you're good to go. I can't tell you much about Django but you must now by now that it has a great reputation with Python users. In any case I don't think you can go wrong with any of these two. My advice is, if you are already familiar with the Spring framework, give Spring Boot a try, because you're going to find out that it just makes the whole Spring experience so much easier. Let us know what you chose!

See more
Recommends
on
DjangoDjango

Both are in active development and had huge community support. It really depends on you what you are comfortable with. Both are married to their respective languages. I choose Python over Java because of its simplicity and readability. To develop in java you need to write a lot of code. That's how java is. The best part I love with Django is its synchronization with Databases.

See more
Needs advice
on
DjangoDjangoNestJSNestJS
and
Spring FrameworkSpring Framework

Hi there, I'm deciding the technology to use in my project.

I need to build software that has:

  • Login
  • Register
  • Main View (access to a user account, News, General Info, Business hours, software, and parts section).
  • Account Preferences.
  • Web Shop for Parts (Support, Download Sections, Ticket System).

The most critical functionality is a WebSocket that connects between a car that sends real-time data through serial communication, and a server performs diagnosis on the car and sends the results back to the user.

See more
Replies (4)
Recommends
on
NestJSNestJS

You can use NestJs with microservice architecture.where you can also use socket.io for web socket. you can use MongoDB (For real-time data) & MySQL for customer management.if you don't want to implement websocket.you can use firebase.it gives realtime database & firestore.which can handle millions of connections and scale it up.

See more
Mohammad-Ali A'râbi
Software Engineer at AppTec GmbH · | 5 upvotes · 238.8K views
Recommends
on
NestJSNestJS

I would also go with NestJS. I would say Java is unnecessarily complicated and limited. And Python is not typed. TypeScript is powerful and typed and goes well with NestJS, especially using RxJS.

Django does not enforce backend-frontend separation, which probably was a good thing back in the days, but not anymore. But on the other hand enforces the project structure to you, which I don't like.

See more
Amit Parameshwar
NodeJS Intern at CartRabbit · | 3 upvotes · 594.7K views
Recommends
on
Node.jsNode.js

Just a simple Node.JS app with templating engine for UI can be sufficient for what you want to achieve.

See more
Recommends
on
Spring FrameworkSpring Framework

Spring boot with Spring Security[JWT], Websocket, Thymeleaf or Mustache, and styling with Bootstrap.

See more
christy craemer
Needs advice
on
EclipseEclipseIntelliJ IDEAIntelliJ IDEA
and
PyCharmPyCharm

UPDATE: Thanks for the great response. I am going to start with VSCode based on the open source and free version that will allow me to grow into other languages, but not cost me a license ..yet.

I have been working with software development for 12 years, but I am just beginning my journey to learn to code. I am starting with Python following the suggestion of some of my coworkers. They are split between Eclipse and IntelliJ IDEA for IDEs that they use and PyCharm is new to me. Which IDE would you suggest for a beginner that will allow expansion to Java, JavaScript, and eventually AngularJS and possibly mobile applications?

See more
Replies (12)
Recommends
on
Visual Studio CodeVisual Studio Code

Pycharm is great for python development, but can feel sometimes slow and community version has Somme very annoying restrictions (like they disabled jupyter notebooks plugin and made it premium feature). I personally started looking into VS Code as an alternative, and it has some very good potential. I suggest you take it into account.

See more
Recommends
on
PyCharmPyCharm

The Community version of PyCharm is free and should give you what you need to get started with Python. Both PyCharm and IntelliJ are made by JetBrains. IntelliJ is initially focused on Java but you can get plugins for lots of other things. I subscribe to JetBrains' Toolbox: https://www.jetbrains.com/toolbox-app/ and have access to all of their great tools.

See more
Recommends
on
Visual Studio CodeVisual Studio Code

Hi, I will give my opinion based on my experience. I have used PyCharm, both community and Professional version. The community has limited functions, like you can't use a Jupyter notebook whereas it's available in the Professional version. PyCharm is slower compared to Visual Studio Code. Also Visual Studio Code is an editor which supports various languages. I myself have used both Visual Studio Code and PyCharm. I feel Visual Studio Code would be better choice. You may as well decide based upon your requirements.

See more
Charles Nelson
Recommends
on
IntelliJ IDEAIntelliJ IDEA

I couldn't imagine using a development tool other than the IntelliJ IDEA Ultimate All Products Pack. A single license allows me to work directly on my server running Ubuntu and/or my workstation running Windows 10 Pro simultaneously. My current project uses HTML, W3CSS, JavaScript, Java, Groovy, Grails, C, GO, Python, Flask, and Rust. For me it's worth every penny of the $150 license fee. And you can try it for free.

See more
awesomebanana2018
Recommends
on
Visual Studio CodeVisual Studio Code

Visual Studio code is easy to use, has a good UI, and a large community. Python works great with it, but unlike some other editors, it works with most languages either by default or by downloading a plugin. VS Code has built in linting, syntax coloring, autocompletes (IntelliSense), and an api for plugins to do there own tooling.

See more
Ivan Martinez Morales
Software Engineer Intern · | 4 upvotes · 701K views
Recommends
on
Visual Studio CodeVisual Studio Code

I'd personally recommend Visual Studio Code as it gives you the flexibility of working in any language, so long as there are extensions to support it. It gives you the flexibility to learn Python, venture into Java, Javascript, and eventually AngularJS, and potentially mobile applications. It's also free and you can install it on your personal computer. I think Visual Studio Code would serve your intended use case best.

See more
Isaac Povey
Casual Software Engineer at Skedulo · | 3 upvotes · 701.1K views
Recommends
on
IntelliJ IDEAIntelliJ IDEA

IntelliJ really is the best for Java, I switched from eclipse years ago and never looked back. As for javascript, python and angular either using the standalone products from jetbrains (pycharm for python, webstorm for js) or installing the relevant plugins for InteliJ will be your best bet. Pycharm etc. are really just InteliJ with some additional plugins installed.

See more
Pranshu Verma
Engineer at Cisco Systems · | 3 upvotes · 701K views
Recommends
on
PyCharmPyCharm

If you starting with Python then PyCharm is better. For Java I would suggest to go with IntelliJ IDEA but people also prefer eclipse so I would say try both and then decide. For JS/Angular/React I would suggest go with VSCode. I personally use it and prefer as its light weight and have good integration with chrome for frontend development.

PyCharm, IntelliJ IDEA are both products of JetBrains. They have a free (limited feature) and paid edition. Eclipse is free. VSCode is also free.

See more
Brian Turner
System Architect at Mary's Watch, Inc. · | 1 upvotes · 701K views
Recommends
on
IntelliJ IDEAIntelliJ IDEA

Easy to learn and everything you need

See more
Pritam Nandy
Engineering Manager at Reliance Jio Infocomm Limited · | 1 upvotes · 648.5K views
Recommends
on
PyCharmPyCharm

This is a very easy to use tool and gives you the opportunity to start coding right after the installation with almost everything setup automatically by the tool.

See more
Recommends
on
PyCharmPyCharm

All three are great, however, I believe that IntelliJ IDEA's multiple IDE's are slightly more straight-forward and more up-to date than Eclipse. If I had to choose one specifically for Python projects I would go with PyCharm.

See more
Recommends
on
PyCharmPyCharm

Pycharm is all you need to get start coding in python or any of its framework. Its an awesome tool you should give it a try :)

See more
Muhammad Shaheer khan
Freelancer at Freelancer.com · | 9 upvotes · 633.6K views
Needs advice
on
DjangoDjangoMagentoMagento
and
Node.jsNode.js

Currently, I am a university student, and it is my second last semester with a major in Computer science. I want to start my career in full-stack web development. I know Python with Django + PHP with Laravel, and my focus is on learning MERN stack. I am a little bit confused as to which technology I should choose: Django or Magento or MERN stack.

#newbie

See more
Replies (2)
Recommends
on
ReactReact

I suggest you to go with MERN Stack (Mongo,express,react,Node). As you know python and django which is a plus point because you can use python and node as your backend and for front-end use react(easy to learn) and database of your choice.(Mongo or SQL)

See more
Moinul Moin
Recommends
on
Node.jsNode.js

GO For MERN Stack... brother

See more
Needs advice
on
ASP.NET CoreASP.NET Core
and
DjangoDjango

As a medium level .Net programmer trying to implementing a website, I decided to go through the Asp.Net Core. I found some tutorials on the web and started learning; however, I faced a problem. Even though I have been working with .Net and C# (mostly with unity game engine, which led to a quite amazing mobile game, published on a Persian app store) for two years or even more, by start learning Asp.Net Core, I found out that I do not know .Net as much as I expected. There were some things I should have learned before.

I searched for other frameworks, and Django was a popular one. Besides, I have planned to learn Python for machine learning. The website I want to make (with a small team) is nearly similar to Khan Academy. (We are going to use React for front-end)

So, What should I do? Continue working on .Net core with its amazing new features, or start getting into the Python and Django?

Your advice accompanied by reasons will be greatly appreciated!

See more
Replies (6)
Recommends
on
DjangoDjango

Having worked with many J2EE database applications in the past, I now turn to Django if I can and the project allows it as it is so quick to get up and running. It has a logical workflow and organized structure and it comes with a high level of security (if you import the appropriate backends). If you are wanting to incorporate python-based data processing (or cython), it is relatively easy to write a backend plugin. I have found it more stable with updates than other frameworks (particularly compared to the NPM world such as React which so often descends into dependency hell when a version of something is updated). One hassle worth mentioning is the database migrations support which can sometimes mess up during development but there are workarounds. With a React frontend, you would be using the Django REST Framework (https://www.django-rest-framework.org/) so you may find that you have to overwrite a lot of the methods here as the defaults are fairly basic CRUD operations which don't really support nested relationships very well. I don't have any experience with .Net so I can't give a comparison except of course, the obvious one, portability, as Python is platform-independent. PS, I would recommend Vue over React also for a well organized front-end.

See more
Recommends
on
DjangoDjango

I find myself in the opposite boat, I have made commercial websites with Django and now find myself learning ASP.NET. My recommendation comes with the following caveats... regardless of direction the learning will happen. Django is a very battery included framework, so the initial process will be painless, I found that documentation and support for more advanced use cases to be fairly easy to get support.

I personally found Django pretty nice to work with.

See more
Recommends
on
ASP.NET CoreASP.NET Core

You can get done what you want with just about any modern framework and language.

Django is fast and easy to learn but as your website grows you will need more and more community apps whose release cycles do not keep up with Django. Unless you are willing to work on the community apps, Django may not be for you.

Compare the active community sizes of Django apps to Ruby on Rails apps and you'll see very active communities with Ruby on Rails and small Django communities. Don't switch to Ruby on Rails though--it is a small, dying community of enthusiasts.

ASP.NET Core is a great backend framework, the community is large and you can always find answers; however, according to the StackOverflow developer survey, it is not desirable for the majority of programmers. I still use it though because my background evolved from C to C++ and then to C#. I also like the Microsoft world.

I've programmed a lot using Angular and some React but am switching to Vue.js which is much easier to learn and faster to code in. Be sure to use TypeScript with Vue.js. Just watch the video on the Vue home page to see how fast he can code using Vue.

But do you really want to code a website from scratch? If not, try WordPress Elementor. It may save you tons of time.

For mobile, use Google Flutter. In my 35 years of professional programming I've never seen anything more elegant, easy to learn, well documented and beautiful than Flutter. From one a single base you can target both Android and IOS and soon Web. You can also develop in Android Studio which means your screen real estate requirements are small so you don't need two monitors.

See more
Recommends
on
ASP.NET CoreASP.NET Core

Go with the ASP.NET Core. It is a very mature technology now and there are tons of documentation, tutorials and support you can find online. Also ASP.NET Core Web API plays quite well with the React. It is easy to implement the entire back-end in .NET Core (APIs, authentication, database access layer...) and if you need any third party package, I'm pretty sure you will find and implement in a form of a NuGet package. Who knows, maybe one day you'll need to create a mobile app and with a fully functional Web API, it would be more-less easy task to build a mobile app on top of it.

See more
Recommends
on
FirebaseFirebase

I recommend you use a framework such as Firebase instead of implementing your own backend server for the website.

I found that Firebase enables me to build websites more quickly since it takes care of the backend for me so most of my development time is building the front-end (using React in your case).

See more
Ilya Lebedev
Recommends
on
DjangoDjango

If you're going to learn Python anyway, Django project will boost your learning process. Since you're going to use React , you only neet to create REST API. Basic API can be created with Django rather easy.

See more
Needs advice
on
DjangoDjango
and
Node.jsNode.js

I have learned both Python and JavaScript. I also tried my hand at Django. But i found it difficult to work with Django, on frontend its Jinja format is very confusing and limited. I have not tried Node.js yet and unsure which tool to go ahead with. I want an internship as soon as possible so please answer keeping that in mind.

See more
Replies (7)
Recommends
on
DjangoDjango

If you are currently not working my first suggestion is to study both the frameworks and get a good grasp of those. If you didn't get confident with Django in the first place you should reconsider going back and study more. Get a video course with some code-along and produce some simple application you can showcase on your interviews. If you already took a course take a different one. Another trainer could be more effective and you could experience something new with different excercises. There are lots of both free and paid courses out there. When you will get confident with Django get your feet wet with Node.js because it surely worth it. Node is very different from Django from some perspective, it looks more like an asynchronous version of Flask to me. Be sure to have a good knowledge of ES6 first, because it will be really useful to understand the Node best practices. Study as much as you can now if you are not working. It will supercharge you for the future...

See more
Max Musing
Founder & CEO at BaseDash · | 10 upvotes · 904.2K views
Recommends
on
Node.jsNode.js
at

From my experience of the early startup world, a majority of companies these days use Node.js. Python and Go are the next biggest languages, but significantly smaller than Node.

However, if you're having trouble with the front end aspect of Django, using Node probably won't make that easier for you. You'll have a lot more options between front end frameworks (React, Vue.js, Angular 2) , but they'll definitely take more time to learn than Django's templating system.

Think about whether you want to focus on front end or back end for now, and make a decision from there.

See more
George Krachtopoulos
Recommends
on
Node.jsNode.js

I had the same question myself a few months ago. I finally chose Node.js, and it was one of the best options I did back then. From when I started programming, I always believed that Python was for me the best language, secure and stable. However, it is not flexible for web development, there are more packages & libraries that are built and work only with JavaScript / TypeScript, and the community, resources & support is much bigger. I was also fascinated by the Django ORM, which I still am, & the admin interface. But those are things, that can be replaces by other tools, such as TypeORM, and the admin interface was not needed at all finally for my case. I know understand that Python is not the language that I should use everywhere and every time, but I can say that it is really good for algorithms, computer science, maths, statistics, analytics & AI. To be honest, I chose TypeScript (TS) with Node.js & Express, because it has auto-completion and "strict" code checking. I hope this helps you, and let you take a look at various aspects of choosing a programming language to work with.

See more
Yousuf Jawwad
Principal Software Architect at Breu Inc. · | 4 upvotes · 500K views
Recommends
on
JinjaJinja

Jinja is a template rendering engine and you will encounter some sort of template rendering engine in each language. Jinja is a pretty standard tool and almost every language has some sort of Jinja equivalent. Ruby has Liquid, Node has Nunjucks, Java has Jinjava, Go's default templating engine is easy to pick up if you know Jinja, Helm charts are easier to pick if know Jinja . So learning Jinja is a good thing.

See more
Recommends
on
Node.jsNode.js

I would suggest to go with js, it's the craze now when you enter into the stack it has variety of options and tools that you can adopt , and more than that the demand for js engineers is exponentially increasing and js can do magic in any type of application or architecture.

See more
Recommends
on
DjangoDjango

Actually, you could get very good solution with implementing BE and admin panel with Django and FE with React.js or Vue.js. it will provide you a pretty flexible and powerful environment.

See more
Recommends
on
DjangoDjango

If you already know some django stuff you should keep that learning path. And for the job if you really want an internship you should learn to make rest APIs using django or nodejs, and a front end that consumes those APIs using some framework

See more
Needs advice
on
ASP.NET CoreASP.NET Core
and
DjangoDjango

I have a mission to make a web application for my organization (engineering consultant). With the following bullet points that the new web app has to cover, what is the right tool?

  1. It should be able to display employee data and project data. For example, when searching the name of Mr. Peter Parker, I should be able to click on the name to see his personal profile and also a list of construction projects he is or was a part of. Also, if I click on a project name, say Project ABC building, it should show me the detail of this project (who is the client, who works on this project, where, start-finish dates, etc.)

  2. It should be able to sync with the database from Microsoft Access.

(optional) 3. The user of this web app should be able to propose a rotation of role (Ex. Boss might want Mr. Peter Paker to work in another project next month, he can just drag Peter into XYZ Building.)

See more
Replies (4)
Mohammad Hossein Amri
Chief Technology Officer at Planally · | 8 upvotes · 279K views
Recommends
on
ASP.NET CoreASP.NET Core

you can achieve what you want with both. but for me, the obvious choice is Aspnet core. the main reason is being the easiness of writing code in a multi-threading manner & ORM. the Django ORM is ugly as hell that I don't even want to look into its code. I did a couple of projects with Django and I wish I never did it. the amount of nuances was so much that after we delivered the projects I rejected any new Django project. I know people still using that and getting projects done but it's not a clever choice when there are easier choices out there.

moreover, after the latest upgrade, the Aspnet core 3 is the fastest and best of framework in 2020.

See more
George Krachtopoulos
Recommends
on
DjangoDjango

I always use Django on my projects. It is really easy and friendly fro the developer. It also comes with an inbuilt admin panel where you can manage all your models (tables), Django has a great authentication and authorization system, and it provides a great and powerful URL dispatcher, suitable for your needs. Furthermore, you can use a called django-pyodbc that is coded specifically for Microsoft SQL Server, and the SQL dialects for SQL Server ("T-SQL") and Access ("Access SQL"). However, I would not recommend using an Access DataBase with any web application's backend. Of course, it depends if you explicitly have Microsoft as your main tech stack.

Hope I helped you, and good luck with your project!

See more
Paresh Kadam
Software Developer at Tavisca · | 4 upvotes · 278.4K views
Recommends
on
ASP.NET CoreASP.NET Core

Would recommend Asp.net core with angular, It would integrate fine. I have experienced Django its good for fast, short span projects. But when it comes to speed, maintainability Asp .net is a winner. Though you can use angular/react in both frameworks. Your application consists of crud operations so you can have a choice based upon availability of resource, maintenance and time

See more
Recommends
on
ASP.NET CoreASP.NET Core

Short answer, ASP.NET because of #2. I think the Microsoft stack, now and in the future will be easier to sync with Microsoft Access. I haven't done extensive research but usually Microsoft office apps work well with the MSFT stack. BUT I personally prefer Django.

See more
Needs advice
on
DjangoDjango
and
Node.jsNode.js

Which is better to learn first as a beginner? Is it true that django is going out of the trend?

I was thinking to learn nodejs but after some thoughts I moved to django and learned most of the basics. Should I learn django more deeply or else drop the django learning and start learning nodejs from scratch?

Please help.

See more
Replies (2)
Christopher Wray
Web Developer at Soltech LLC · | 12 upvotes · 258.1K views
Recommends
on
LaravelLaravel

Hey, I have found Laravel to be a great first web framework for me. Mainly, I would look at what you want to build, and go with the framework that will help you get there. It is not about learning a certain framework, but about building apps that help people solve problems. So you should start with a small project that helps people, and find a framework that can help you build that.

I am sure that others will disagree, but this is my opinion.

See more
Recommends
on
GolangGolang

Don't by trendy, try to learn the basics and learn for future. For beginner Go is a great start, they're having a great documentation. Once you get Go, backend development wouldn't be a problem. I'll suggest you not to use and framework or library at the beginning. Do things from scratch, it may sounds inefficient, but hey! you'll learn more than others. Afterwards you'll be also able to do application development in Go.

See more
Needs advice
on
DjangoDjangoFlaskFlask
and
Node.jsNode.js

I am a front-end guy and in the last month I've been trynig to be learn backend in python. I think python is a great language to but when i start to learn django I didn't like it because everythong is already done for you, you dont need to do much make it works and I like coding thing that take me time. I've been thinking about switching to another programing language or just learn Node js and stick with it. I need to know if django is that easy.

See more
Replies (2)
Klaus Nji
Staff Software Engineer at SailPoint Technologies · | 7 upvotes · 118.5K views
Recommends
on
Node.jsNode.js

I would stick with Node. Both are great frameworks but it appears Node edges over Django on performance and other aspects such as the underlying architecture. Node is also an event driven platform which comes with the added benefit of easily crafting asynchronous code.

I do not see the benefit of learning a new language when your current skill set can get the job done.

See more
Recommends
on
Node.jsNode.js

Hi, So I would give JavaScript (and then Node.js) a chance. Using only 1 language to create BackEnd and FrontEnd is something really powerful. Also, I did not enjoy Django that much, as you mention, it kinda feel like too structured/rigit to me...

See more
George Krachtopoulos
Needs advice
on
DjangoDjangoNode.jsNode.js
and
ReactReact

I would like to build a medium to large scale app, that has real-time operations and a good authentication system and a secure and fast API. Should I use Django with React only? Or maybe use Django for the API, Node.js for real-time operations and React for the frontend? Any suggestions? Which database should I use with those technologies? Should I use both MySQL / PostgreSQL and MongoDB together? Should I use only MongoDB or MySQL / PostgreSQL? Or is it better to go with both MySQL and PostgreSQL at the same time? Should I use also GraphQL?

See more
Replies (2)
Max Saykov
Full-stack developer at Asteria · | 9 upvotes · 80.7K views
Recommends
on
DjangoDjango

Hey, George

TL;DR PostgreSQL + Django + React.js.

A few notes about Django: * Django includes own ORM which is able to work with SQL databases. In this case, you're able to use any SQL storage like a PostgreSQL / MySQL / etc., but you can't use MongoDB. * Django is synchronous web-framework. If you want to use asynchronous operations in the database, you have to choose another tool (aiohttp for Python or fastify.js for Node.js). * Django is stable. You don't need to worry about data consistency, etc. * Django-Rest-Framework is a great library for handling REST API requests. * django-channels is a library for handling WebSocket connections. * GraphQL is a great thing, but it requires additional knowledge for using it. (especially, performance knowledge).

A few notes about Node.js: * You have to choose Node.js web-framework. Node.js includes a lot of web-frameworks like a express.js, hapi.js, fastify.js, etc. * Node.js applications are asynchronous. It can give you additional performance. * You have to know about data consistency inside your own application. * You're able to use MongoDB or any SQL database because npm includes a lot of libraries that can work with databases. * You're able to use GraphQL because Node.js is a better choice for GraphQL. * You don't need to use additional libraries for handling REST and WebSocket connections.

So, my conclusion is using Django + PostgreSQL + React.js. For this stack, you can get more stability. If you need to get more performance, you have to think about some asynchronous languages (like a Node.js).

Take a look at Flask + SQLAlchemy + PostgreSQL + React.js. SQLAlchemy is a better ORM than Django-ORM.

I hope, it's useful for you :)

Best regards, Max

See more
Max Musing
Founder & CEO at BaseDash · | 5 upvotes · 102.2K views
Recommends
on
PostgreSQLPostgreSQL
at

Node.js is a great option for real-time applications, especially in conjunction with Socket.IO.

In terms of databases, I'd go with PostgreSQL. MongoDB has its benefits (schema-less, sharding, map-reduce), but for most CRUD-based apps, it makes sense to store the bulk of your data in a relational database (of which PostgreSQL is the best IMO). You can throw in MongoDB if you have a specific need for it. There's certainly no need to use both MySQL and PostgreSQL.

As for GraphQL, it can be nice to work with since you don't need to predefine specific data endpoints on your backend, instead shifting the power to your frontend in requesting the data it needs. It's also useful for public APIs, when you don't know what data users want (see Github's API). It can be useful at the early stage when you're prototyping and want to be able to fetch data quickly, but certainly isn't necessary.

At BaseDash we use Node.js, ExpressJS, Socket.IO, PostgreSQL, and Sequelize to fit our use case of database management and real-time operations.

See more
Decisions about Django and PyCharm
Chose
RailsRails
over
DjangoDjango

I have used both the tools . Both of them are super awesome , very reliable and their learning curve is also super easy. But, the reason I choose Ruby on Rails over Django is the fact that the dependency injection is super easy in Rails than Django. What I mean is the fact that, Django requires a lot of import statement to do a lot of work, which remembering is not so easy and even after that you may need to write a lot of code. But Ruby on Rails uses gem to add addition feature or dependency in the project. Which requires just copying the gem statement from github and pasting it in the Gemfile, then running bundle install(these days just bundle works super fine). And there you are with the new feature in your app. You can see this with the example of Authentication, where in Django you require several steps like adding class based views and many more, but in rails it's just as easy as installing the 'devise' gem . And if you want to make it beautiful use bootstrap_template gem to make it look prettier. Now with Rails 6 , Rails is a total developer's fervent friend because it has come up with features like Action Mail and Action Text.

See more
washie mugo
Chose
DjangoDjango
over
LaravelLaravel

i find python quite resourceful. given the bulk of libraries that python has and the trends of the tech i find django which runs on python to be the framework of choice to the upcoming web services and application. Laravel on the other hand which is powered by PHP is also quite resourceful and great for startups and common web applications.

See more

Since I came from python I had two choices: #django or #flask. It felt like it was a better idea to go for #django considering I was building a blogging platform, this is kind of what #django was made for. On the other hand, #rails seems to be a fantastic framework to get things done. Although I do not regret any of my time spent on developing with #django I want to give #rails a try some day in the future for the sake of curiosity.

See more
Ing. Alvaro Rodríguez Scelza
Software Systems Engineer at Ripio · | 9 upvotes · 505.9K views

Decided to change all my stack to microsoft technologies for they behave just great together. It is very easy to set up and deploy projects using visual studio and azure. Visual studio is also an amazing IDE, if not the best, when used for C#, it allows you to work in every aspect of your software.

Visual studio templates for ASP.NET MVC are the best I've found compared to django, rails, laravel, and others.

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of Django
Pros of PyCharm
  • 673
    Rapid development
  • 487
    Open source
  • 425
    Great community
  • 379
    Easy to learn
  • 277
    Mvc
  • 232
    Beautiful code
  • 223
    Elegant
  • 207
    Free
  • 203
    Great packages
  • 194
    Great libraries
  • 80
    Comes with auth and crud admin panel
  • 79
    Restful
  • 78
    Powerful
  • 76
    Great documentation
  • 72
    Great for web
  • 57
    Python
  • 43
    Great orm
  • 41
    Great for api
  • 32
    All included
  • 29
    Fast
  • 25
    Web Apps
  • 23
    Clean
  • 23
    Easy setup
  • 21
    Used by top startups
  • 19
    Sexy
  • 19
    ORM
  • 15
    The Django community
  • 14
    Allows for very rapid development with great libraries
  • 14
    Convention over configuration
  • 11
    King of backend world
  • 10
    Full stack
  • 10
    Great MVC and templating engine
  • 8
    Mvt
  • 8
    Fast prototyping
  • 7
    Its elegant and practical
  • 7
    Easy to develop end to end AI Models
  • 7
    Batteries included
  • 6
    Have not found anything that it can't do
  • 6
    Very quick to get something up and running
  • 6
    Cross-Platform
  • 5
    Zero code burden to change databases
  • 5
    Great peformance
  • 5
    Python community
  • 5
    Easy Structure , useful inbuilt library
  • 4
    Easy to use
  • 4
    Map
  • 4
    Easy to change database manager
  • 4
    Full-Text Search
  • 4
    Just the right level of abstraction
  • 4
    Many libraries
  • 4
    Modular
  • 4
    Easy
  • 3
    Scaffold
  • 1
    Node js
  • 1
    Built in common security
  • 1
    Great default admin panel
  • 1
    Scalable
  • 1
    Cons
  • 1
    Gigante ta
  • 1
    Fastapi
  • 0
    Rails
  • 112
    Smart auto-completion
  • 93
    Intelligent code analysis
  • 77
    Powerful refactoring
  • 60
    Virtualenv integration
  • 54
    Git integration
  • 22
    Support for Django
  • 11
    Multi-database integration
  • 7
    VIM integration
  • 4
    Vagrant integration
  • 3
    In-tool Bash and Python shell
  • 2
    Plugin architecture
  • 2
    Docker
  • 1
    Django Implemented
  • 1
    Debug mode support docker
  • 1
    Emacs keybinds
  • 1
    Perforce integration

Sign up to add or upvote prosMake informed product decisions

Cons of Django
Cons of PyCharm
  • 26
    Underpowered templating
  • 22
    Autoreload restarts whole server
  • 22
    Underpowered ORM
  • 15
    URL dispatcher ignores HTTP method
  • 10
    Internal subcomponents coupling
  • 8
    Not nodejs
  • 8
    Configuration hell
  • 7
    Admin
  • 5
    Not as clean and nice documentation like Laravel
  • 4
    Python
  • 3
    Not typed
  • 3
    Bloated admin panel included
  • 2
    Overwhelming folder structure
  • 2
    InEffective Multithreading
  • 1
    Not type safe
  • 10
    Slow startup
  • 7
    Not very flexible
  • 6
    Resource hog
  • 3
    Periodic slow menu response
  • 1
    Pricey for full features

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is Django?

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

What is PyCharm?

PyCharm’s smart code editor provides first-class support for Python, JavaScript, CoffeeScript, TypeScript, CSS, popular template languages and more. Take advantage of language-aware code completion, error detection, and on-the-fly code fixes!

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

What companies use Django?
What companies use PyCharm?
Manage your open source components, licenses, and vulnerabilities
Learn More

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

What tools integrate with Django?
What tools integrate with PyCharm?

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

Blog Posts

GitHubPythonReact+42
49
40939
GitHubPythonNode.js+47
55
72820
PythonDjangoDjango REST framework+3
6
5709
JavaScriptGitHubPython+42
53
22177
GitHubPythonSlack+25
7
3225
GitHubPythonDocker+24
13
17084
What are some alternatives to Django and PyCharm?
Flask
Flask is intended for getting started very quickly and was developed with best intentions in mind.
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.
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.
See all alternatives