JetBrains logo

Django Developers Survey 2023

This report is based on the third annual Django Developers Survey, conducted in September – October 2023 as a collaborative effort between the Django Software Foundation and PyCharm. To help us get a better idea of the current state of the framework and the ecosystem around it, around 4,000 Django users and enthusiasts from around the world took the survey.

Check out the Django Developers Survey results: 2022, 2021.

Django usage

For what purposes do you mainly use Django?

64%

Both for work and for my personal, educational, or side projects

19%

Only for my personal, educational, or side projects

18%

Only for work

What versions of Django do you use?100+

202120222023
69%4.2
55%25%4.1
34%16%4.0
75%47%28%3.2
30%10%5%3.1
39%13%8%3.0 or lower
3%3%4%I’m not sure
075%

When the survey was conducted in September – October 2023, 4.2, 4.1 and 3.2 were the only versions actively supported by Django. Versions 4.0, 3.1 and 3.0 and below no longer had security support.

What Django version do you use for new projects?

64%

The latest stable release

32%

The latest LTS release

4%

Other

How do you create new Django projects?100+

71%

Start from scratch

17%

Using Cookiecutter Django

13%

Using custom-made tool for this

7%

Using djangox

7%

Using Django Material Kit

7%

Using django-react-boilerplate

10%

Other

Jeff Triplett
Partner at REVSYS, former Director and Vice Chair of the Python Software Foundation

I suspect most people default to `pip install django`, which speaks to Django's release stability.

Mastodon, X (formerly Twitter)

How often do you upgrade Django in your projects?

40%

Every stable release

32%

LTS only

15%

Every monthly point release

5%

I use an unsupported version of Django

8%

Other

Technologies and frameworks

What database backend(s) do you use?100+

76%

PostgreSQL

43%

SQLite

30%

MySQL

10%

MariaDB

8%

MongoDB

6%

Oracle

4%

Microsoft SQL Server

4%

Other

1%

None / I’m not sure

What cache backend(s) do you use?100+

54%

Redis

20%

Memcached

18%

Local Memory

16%

Database

8%

Filesystem

3%

Other

24%

None

What GeoDjango backend(s) do you use?100+

66%

None / I’m not sure

24%

PostGIS

10%

MySQL

4%

Oracle

4%

SpatiaLite

2%

Other

What Django contrib apps do you find most useful?100+

77%

admin

74%

auth

47%

postgres

46%

sessions

45%

staticfiles

32%

messages

25%

contenttypes

25%

redirects

17%

humanize

16%

sites

What are your 3 favorite core components?100+

69%

Models

48%

Admin

33%

Authentication

29%

Migrations

24%

Views

14%

Django management commands

14%

Forms

13%

Templates

9%

3rd party ecosystem

8%

URLs

What template engine do you use?100+

78

Django templates

16

Jinja2

3

Other

13

None

Which types of testing are used in your project?100+

51%

Functional testing

28%

Regression testing

18%

QA testing

17%

Performance testing

16%

Security testing

14%

Production testing

13%

Usability testing

13%

Acceptance testing

11%

Smoke testing

10%

Load testing

What test frameworks do you use?100+

42%

41%

pytest

33%

31%

pytest-django

31%

36%

unittest (manage.py test)

24%

21%

coverage

15%

10%

Selenium

Since last year, Selenium and Playwright have grown in popularity from 10% to 15% and from 3% to 9%, respectively. Playwright also has a nice pytest plugin and can be run in Docker containers.

Which async technologies do you use?100+

28%

25%

ASGI

25%

23%

asyncio

21%

18%

FastAPI

19%

15%

Uvicorn

18%

15%

Channels

Although Django has great built-in support for writing and deploying async views under ASGI, FastAPI is still more popular among Django developers. This might change as Django's async support continues to mature in the coming releases.

What CSS framework(s) do you use?100+

202120222023
68%62%56%Bootstrap
15%22%29%Tailwind CSS
14%13%18%Pure CSS
12%9%11%Material Design/Lite
6%6%8%Bulma
3%2%4%Semantic UI
2%1%5%Foundation
2%2%3%UI Kit
1%1%3%Skeleton
0%0%2%Susy
4%5%5%Other
16%17%15%None
0%68%

For the third year in a row, we continue to see a downward trend for Bootstrap and significant growth for Tailwind CSS, whose popularity has doubled in the last two years. Read this article from the package creator Tim Kamanin if you’d like to get started using Tailwind CSS in Django.

What JavaScript framework(s) do you use?100+

202120222023
37%36%35%React
37%32%31%jQuery
5%16%23%htmx
28%25%19%Vue
10%8%10%Angular
3%6%10%Alpine.js
1%1%4%Backbone
3%4%Svelte
1%1%3%Ember
0%0%3%Mako
3%4%4%Other
20%19%18%None
0%37%
Sarah Boyce
Django Fellow

Using Django as an API and a JavaScript framework to create a single-page application has been the standard for a modern web user experience, but it seems that htmx is challenging that.

Mastodon, LinkedIn

What are your 5 favorite third-party Django packages?100+

49%

60%

djangorestframework

27%

28%

django-debug-toolbar

27%

28%

django-celery

18%

17%

django-allauth

18%

18%

django-cors-headers

What do you use Django for?100+

73%

Full-stack

61%

REST API using DRF

4%

Other

Sarah Boyce
Django Fellow

django-ninja is an async, typed API framework for Django and might be the biggest gainer in popularity since last year’s survey. Taking some of the market share of djangorestframework. I know a lot of people who really love django-ninja.

Mastodon, LinkedIn

Development tools

What is your primary text editor or IDE?100+

47%

VS Code

29%

PyCharm

7%

Vim

3%

Sublime Text

3%

Emacs

2%

Notepad++

2%

Nano

2%

Atom

4%

Other

What is your primary local operating system?100+

36%

Linux

32%

macOS

19%

Windows with WSL

10%

Windows without WSL

2%

BSD

2%

Other

Flavio Adamo
Proud co-creator of codeishot.com

As a Django developer, PyCharm was one of the best investments I’ve ever made. I was skeptical at first, but after experiencing it, I can’t imagine going back.

X (formerly Twitter)

What continuous integration systems do you use?100+

202120222023
35%42%45%GitHub Actions
27%28%25%GitLab CI
12%10%11%Jenkins/Hudson
8%8%5%CircleCI
5%AWS CodePipeline
5%Azure Pipelines
6%2%4%Travis CI
4%Google Cloud Build
3%Buildkite
1%1%2%TeamCity
7%6%4%Other
32%28%25%None
045%

What configuration management tools do you use?100+

20%

Ansible

10%

Custom solution

6%

Fabric

4%

Puppet

4%

Chef

3%

Salt

3%

Other

62%

None

Vuyisile Ndlovu
DevOps Engineer

GitHub Actions has steadily gained market share in recent years and is integrated with the GitHub environment. As GitHub is one of the most popular source code management tools available, the integration with GitHub Actions makes it convenient for developers to set up and manage their CI/CD workflows directly within the GitHub environment.

LinkedIn, X (formerly Twitter)

What Infrastructure-as-Code (IaC) tools do you use?100+

20%

Terraform

9%

AWS CloudFormation

5%

Pulumi

4%

Crossplane

4%

Google Cloud Deployment Manager

4%

Azure Resource Manager

4%

Vagrant

4%

Puppet

3%

Saltstack

3%

Brainboard Ansible

Joseph Anyetei Sowah
DevOps Engineer

I know Terraform is a master in this market, but Pulumi and open-source IaC tools are also doing just fine. The beauty of using Pulumi is you can use your favorite programming language, in my case Python, to build infrastructure.

LinkedIn, X (formerly Twitter)

Syntax and documentation

Do you currently use type hints in your Django code?

Which type checker do you use?100+

34%

Mypy

29%

Pyright / Pylance

7%

Pytype

4%

Pyre

6%

Other

33%

None

How much do you contribute to the documentation of the software you’re involved in developing?

28%

Some, or sometimes

26%

A little, or hardly ever

23%

A lot, or often

23%

None, or never

What do you use to host and publish documentation for the software you’re involved in developing?100+

40%

readme

27%

Self-hosted

23%

GitHub Pages

20%

Read the Docs

11%

Atlassian Confluence

7%

MkDocs

4%

GitBook

8%

Other

17%

We don’t publish documentation

What principles do you adopt in the documentation for the software you’re involved in developing?100+

67%

No explicitly adopted information architecture

28%

Formal documentation review

18%

Topic-based structure

17%

Code will not be merged without relevant documentation

13%

Explicit style guide for contributors

12%

Inclusive language

9%

Diátaxis

7%

DITA

4%

Other information architecture

5%

Other

What systems and languages do you use to create and build documentation?100+

57%

Markdown

37%

Swagger / OpenAPI

23%

Sphinx

17%

rST

16%

Postman

16%

wiki

4%

AsciiDoc

4%

Other

16%

None

Languages and frameworks

Is Python your main programming language?

83%

Yes

13%

No, I use Python as a secondary language

3%

Other

What other programming language(s) do you use in addition to Python?100+

68%

JavaScript

65%

HTML / CSS

47%

SQL

39%

Bash/Shell

28%

TypeScript

20%

C / C++

14%

PHP

14%

Java

14%

Go

10%

Rust

What is your main programming language?100+

This question was shown only to those whose primary language isn't Python.

12%

JavaScript

10%

TypeScript

10%

Java

8%

C / C++

8%

PHP

6%

Go

6%

C#

5%

SQL

5%

Rust

4%

Ruby

Other than Django, what web frameworks do you use?100+

31%

React.js

27%

Flask

25%

FastAPI

22%

JQuery

21%

Vue.js

9%

Express

9%

Angular

6%

Laravel

6%

ASP.NET Core

6%

Spring

Which web framework do you use the most?100+

74%

Django

4%

React.js

2%

Vue.js

2%

FastAPI

2%

Flask

1%

ASP.NET

1%

ASP.NET Core

1%

Angular

1%

Spring

1%

Angular.js

Thibaud Colas
Director, Django Software Foundation

It’s great we have so many users of other frameworks in our community. There is a lot we could learn from competitors like Rails and Laravel.

LinkedIn, X (formerly Twitter)

Resources

Which of the following do you use to follow Django development?100+

54%

59%

djangoproject.com

24%

26%

Stack Overflow

21%

18%

YouTube

18%

20%

Reddit (r/django)

17%

10%

Django Forum

17%

15%

Django News Newsletter

17%

16%

I don’t follow Django development

14%

20%

X (formerly Twitter)

12%

11%

Friends

12%

11%

Hacker News

In 2023, Django started actively managing a page on Mastodon. The biggest share of Mastodon users are in North America. Meanwhile, the share of X (formerly Twitter) users slightly decreased.

Shares of Django Forum have increased from 10% to 17% since last year, and Django Discord has increased in popularity as well. djangoproject.com encourages users to go to these two channels for community and support.

Which of the following do you prefer to use to learn Django?100+

71%

80%

djangoproject.com

41%

StackOverflow

38%

40%

YouTube

37%

45%

Blogs

26% of developers are already using newly emerged AI tools to learn Django.

Which of the following web resources do you read or follow for Django, excluding the official Django channels?100+

54%

YouTube channels

35%

Podcasts

34%

Blogs

13%

Forums

12%

X (formerly Twitter) handles

21%

Other

Joseph Anyetei Sowah
DevOps Engineer

YouTube is my best source when it comes to learning Django. Sometimes what I do is search for Django conference talks and tutorials and rewatch them.

LinkedIn, X (formerly Twitter)

Python versions

What version(s) of Python do you use?100+

65%

3.11

46%

58%

3.10

29%

51%

3.9

20%

36%

3.8

8%

17%

3.7

What do you typically use to upgrade your Python version?100+

38%

Python.org

34%

OS-provided Python

31%

Docker containers

27%

pyenv

8%

Anaconda

8%

Build from source

6%

Automatic updates via a cloud provider

4%

Someone else manages Python updates for me

5%

Other

4%

I don't update

Which of the following tools do you use to isolate Python environments?100+

202120222023
44%55%52%venv
40%42%40%Docker
55%43%34%Virtualenv
13%19%21%Poetry
23%21%19%Pipenv
8%7%10%Conda
3%2%3%Vagrant / virtual machines
2%3%3%Other
3%3%5%None
2%55%

What code formatters do you use?100+

52%

Black

29%

isort

26%

autopep8

18%

pre-commit

3%

YAPF

7%

Other

24%

None

Which top 5 Python packages do you rely on?100+

45%

55%

Psycopg2

44%

51%

Requests

34%

40%

Gunicorn

32%

36%

Celery

30%

32%

pytest

Support for psycopg 3.1.8+ was added in Django 4.2 and support for psycopg2 is likely to be deprecated and removed at some point in the future.

What linters do you use?100+

202120222023
26%41%42%Black
40%43%37%Flake8
37%33%29%pylint
14%18%20%mypy
4%3%11%Other
26%23%21%None
3%43%
Thibaud Colas
Director, Django Software Foundation

I suspect Ruff (https://docs.astral.sh/ruff/) explains a lot of the movement here, with its speed and ease of use.

LinkedIn, X (formerly Twitter)

Cloud

What cloud hosting platform do you use?100+

202120222023
43%44%39%AWS
25%23%23%DigitalOcean
13%12%17%Google Cloud Platform
27%21%16%Heroku
11%10%13%PythonAnywhere
8%8%11%Microsoft Azure
6%7%9%Linode
1%1%5%OpenStack
3%5%Fly.io
1%1%4%OpenShift
0%0%4%Rackspace
11%13%17%Other
19%20%16%None
0%44%

After Heroku eliminated its free product plans, its share of users dropped from 27% in 2021 to only 16% in 2023.

How do you run code in the cloud?100+

51%

Within containers

36%

In virtual machines

21%

On a platform-as-a-service

10%

Serverless

3%

Other

15%

None

Joseph Anyetei Sowah
DevOps Engineer

AWS is my favorite when it comes to Django deployment. I can easily deploy my Django app to Elastic Beanstalk with just a few steps.

LinkedIn, X (formerly Twitter)

What container orchestration services do you use in production?100+

19%

Amazon ECS / Fargate

14%

Kubernetes

12%

Amazon EKS

12%

Docker Swarm

10%

Google Kubernetes Engine

8%

Google Cloud Run

7%

Azure Kubernetes Service

5%

OpenShift

4%

HashiCorp Nomad

5%

Other

48%

None

How do you develop locally for the cloud?100+

55%

Locally with virtualenv

44%

In Docker containers

13%

In virtual machines

9%

With a local system interpreter

9%

In remote development environments

4%

Directly in the production environment

2%

Other

11%

None

Containers

Do you use Docker containers, or something similar?100+

49%

I use containers during development

43%

The application I build runs in containers in production

42%

Containers are used in the CI/CD process

28%

No / I’m not sure

3%

I use containers for another purpose

What do you run inside Docker containers?100+

83%

Application code that I develop or that my team develops

64%

Backing services that my code connects to

23%

Utilities I use during development

4%

Other

During development, where do you run your code?100+

68%

Inside a virtualenv

59%

Inside a container, on my computer

20%

Using the system interpreter on my computer

10%

Inside containers, on a different computer

9%

On a different computer outside of containers

4%

Other

How do you deploy code to remote containers during development?100+

52%

I use continuous integration

39%

I build the container image locally and then push the image

38%

I transfer code to the host machine and build the container there

33%

I connect to the Docker engine remotely

2%

Other

How do you debug your application?100+

67%

Using print or log statements

52%

Using my IDE

42%

Using shell / pdb

2%

Other

Vuyisile Ndlovu
DevOps Engineer

Print statements have their place; they are convenient, require no setup, and allow you to see the values of variables quickly, but they don't offer much beyond that. I use both print statements and the IDE debugger. Debuggers have several advantages over print statements. Debuggers allow you to set breakpoints without changing the source code, watch variables you're interested in, isolate specific sections of the code and even set conditional breakpoints. Using a debugger, you can pause code execution virtually anywhere, even during the request-response cycle, which is great for debugging web apps.

LinkedIn, X (formerly Twitter)

Do you debug your application on remote hosts, or in containers?100+

27%

I only use log statements

26%

I frequently use a debugger on my application running remotely or in containers

22%

I've attached a debugger once or twice

25%

No

Vuyisile Ndlovu
DevOps Engineer

Debugging containerized applications is challenging because of the tooling overhead required to get it to work. It's no surprise that many developers don't do it.

LinkedIn, X (formerly Twitter)

Demographics

What is your current employment status?

64%

Fully employed by a company / organization

10%

Self-employed

8%

Freelancer

6%

Student

4%

Partially employed by a company / organization

3%

Currently unemployed

3%

Working student

2%

Other

What is your job role?100+

78%

Developer / Programmer / Software Engineer

16%

Team lead

15%

Architect

14%

CTO / CIO / CEO

10%

Data Analyst / Data Engineer / Data Scientist

7%

Technical support

7%

Product manager

6%

Business analyst

6%

DBA

5%

QA Engineer

4%

Technical writer

4%

Instructor / Teacher / Tutor

6%

Other

What kind of activities are you focused on?100+

86%

Web development

29%

DevOps / System administration / Writing automation scripts

25%

Data analysis

16%

Software testing / Writing automated tests

15%

Machine learning

15%

System Administration

14%

Software prototyping

13%

Programming of web parsers / scrapers / crawlers

12%

Mobile development

10%

Education

10%

Desktop development

8%

Network programming

7%

Embedded development

6%

Computer graphics

6%

Game development

5%

Multimedia applications development

3%

Other

What is your company size?

8%

Just me

18%

2–10 people

26%

11–50 people

24%

51–500 people

6%

501–1,000 people

7%

1,001–5,000 people

9%

More than 5,000 people

2%

Not sure

What is the size of the team you work in within your company?

8%

Just me

55%

2–7 people

20%

8–12 people

9%

13–20 people

5%

21–40 people

3%

More than 40 people

Do you work in a team or independently?

62

I work in a team

33

I work on my own project independently

5

I work as an external consultant or trainer

How many projects do you work on?

47

I work on many different projects

39

I work on one main project and several side projects

14

I only work on one project

Which of the following industries best describes your company’s business?100+

32%

Information Technology / Software Development

7%

Accounting / Finance / Insurance

6%

Manufacturing

6%

Education / Training

5%

Medicine / Health

4%

Sales / Distribution / Business Development

3%

Marketing

3%

Science

3%

Banking / Real Estate / Mortgage Financing

3%

Non-profit

How many full years of professional coding experience do you have?

9%

Less than 1 year

16%

1–2 years

24%

3–5 years

19%

6–10 years

32%

11+ years

How long have you been programming in Python?

6%

Less than 1 year

17%

1–2 years

33%

3–5 years

24%

6–10 years

21%

11+ years

Could you tell us your age range?

4%

18–20

30%

21–29

38%

30–39

18%

40–49

6%

50–59

2%

60 or older

1%

I prefer not to answer

Which region are you based in?

44%

Europe

19%

North America

17%

Asia

7%

South America

6%

Africa

3%

Middle East

3%

Oceania

2%

Central America

1%

The Caribbean

1%

Other

The Django community is growing, reaching more and more places around the world.

Last year, DjangoCon Africa was held for the first time.

Joseph Anyetei Sowah
DevOps Engineer

It's great to see Africa in the numbers, but seeing the work being done now in the region, I am sure the percentage could double in the coming year.

LinkedIn, X (formerly Twitter)

What is your country or region?

24%

United States

7%

India

5%

Germany

5%

United Kingdom

4%

France

3%

Brazil

2%

Canada

2%

Poland

2%

Russian Federation

2%

Italy

Methodology and raw data

Want to dig further into the data? Download the anonymized survey responses and see what you can learn! Share your findings and insights by mentioning @pycharm and @djangoproject on X (formerly Twitter), or @django on Mastodon, with the hashtag #djangosurvey.

Before dissecting the data, please note the following important information:

The data set includes responses only from official Django Software Foundation channels. The responses were collected through the promotion of the survey on official Django channels, such as djangoproject.com and the DSF's Twitter account, with no involvement of any PyCharm channels. In order to prevent the survey from being slanted in favor of any specific tool or technology, no product-, service-, or vendor-related channels were used to collect responses.

After filtering out duplicate and unreliable responses, the data set includes around 4,000 responses collected in September – October, 2023. Here are the criteria for filtering out responses:

Any of the following:

  • Age 17 or younger.
  • Did not answer the question “How many full years of professional coding experience do you have?” on the third page of the survey.
  • Age under 21 and has more than 11 years of professional coding experience.
  • Too many single answers for multiple-choice questions (excluding “None” answers).
  • Multiple responses from the same email address (only one response is used).

At least two of the following:

  • More than 10 programming languages used.
  • More than 8 job roles.
  • Both CEO and aged under 21.
  • Too many answers selected overall.
  • Answered too quickly (less than 5 seconds per question).

The data are anonymized, with no personal information or geolocation details. Moreover, to prevent the identification of any individual respondents by their verbatim comments, all open-ended fields have been deleted.

To help you better understand the logic of the survey, we are sharing the data set, the survey questions, and all the survey logic.

Download the raw data

Once again, on behalf of both the Django Software Foundation and PyCharm, we’d like to thank everyone who took part in this survey.

If you have any questions or suggestions, please contact us at surveys@jetbrains.com.