JetBrains logo

Django Developers Survey 2022

This is the second annual Django Developers Survey, conducted September – October, 2022, as a collaborative effort between the Django Software Foundation and JetBrains. To help us get a better idea of the current state of the framework and the ecosystem around it, 4,900 Django users and enthusiasts from 248 countries and regions took the survey.

For the latest findings, go to the 2023 Django Developer Survey, or check out the initial 2021 Django Developer Survey.

For what purposes do you mainly use Django?

Which versions of Django do you use?>100%

55%

0%

4.1

34%

0%

4.0

47%

75%

3.2

10%

30%

3.1

13%

39%

3.0 or lower

The majority of users migrated to the latest version 4.1 but almost half of Django developers still rely on the 3.2 LTS version.

Django versions 3.1 and lower are used by experienced Python developers, while newcomers use only the newest versions.

For new projects, what version of Django do you use?

70%

The latest stable release

28%

The latest LTS release

3%

Other

How often do you upgrade Django in your projects?

44%

Every stable release

14%

Every monthly point release

30%

LTS only

5%

An unsupported version of Django

7%

Other

Django developers usually upgrade their projects with either every stable release (44%) or only with long-term support (LTS) (32%).

Technologies and frameworks

What database backend(s) do you use?> 100%

79%

PostgreSQL

40%

SQLite

28%

MySQL

10%

MariaDB

2%

Oracle

2%

None / I’m not sure

6%

Other

Django officially supports the following databases: PostgreSQL, SQLite, MySQL, MariaDB, and Oracle. Since last year’s survey, PostgreSQL has become even more popular, with shares increasing by 2 percentage points.

Only 6% of developers use databases that are not supported by Django. The database mentioned most often by these developers is MongoDB.

What cache backend do you use?> 100%

54%

Redis

17%

Local Memory

16%

Database

16%

Memcached

8%

Filesystem

1%

Other

27%

None

Practiced by more than half of Django developers, caching with Redis is the most popular.
Developers who use Redis as a cache backend use TypeScript more often than those who choose other caching methods.

PostgreSQL database users prefer Redis and Memcached.

Among SQLite users, the biggest share is Filesystem, with local memory being the second most popular.

What GeoDjango backend(s) do you use?>100%

72%

None / I’m not sure

22%

PostGIS

6%

MySQL

2%

SpatiaLite

1%

Oracle

1%

Other

The use of GeoDjango backend highly correlates with the choice of database backend.

What Django contrib apps do you find most useful?> 100%

85%

admin

80%

auth

50%

postgres

50%

sessions

48%

staticfiles

33%

messages

26%

contenttypes

25%

redirects

17%

humanize

16%

sites

11%

GeoDjango

10%

sitemap

3%

flatpages

3%

syndication

1%

Other

5%

None / I’m not sure

More than 80% of respondents chose admin or auth, which makes them the most popular contrib apps for the second year in a row.

What are your 3 favorite core components?> 100%

76%

Models

50%

Admin

33%

Authentication

31%

Migrations

25%

Views

14%

Django management commands

13%

Forms

13%

Templates

10%

Third-party ecosystem

8%

URLs

5%

Signals

5%

Testing

4%

Caching

2%

I’m not sure

1%

Other

The favorite core component among respondents is Models. It was chosen by 76% of Django users, which is 4 percentage points higher than the previous year.

What template engine do you use?> 100%

81%

Django templates

14%

Jinja2

2%

Other

13%

None

What test frameworks do you use?> 100%

41%

pytest

36%

unittest

31%

pytest-django

21%

coverage

10%

Selenium

6%

tox

5%

Cypress

3%

Playwright

3%

django-test-plus

2%

nose

1%

TestCafe

1%

Other

26%

None

What JavaScript framework(s) do you use?>100%

36%

37%

React

32%

37%

jQuery

25%

28%

Vue

16%

5%

htmx

8%

10%

Angular

Released in 2020, htmx is now getting more attention. The usage of this JavaScript framework has tripled since our previous survey in August 2021. Additionally, Alpine.js has doubled its share, although this value is still too small to make any specific conclusions.

Compared to last year's results, the share of jQuery decreased by 5 percentage points.

It’s interesting to note that frameworks that used to be leaders are beginning to lose their share to newly emerging ones.

What CSS framework(s) do you use?>100%

62%

68%

Bootstrap

22%

15%

Tailwind CSS

13%

14%

Pure CSS

9%

12%

Material Design/Lite

6%

6%

Bulma

Since last year, the share of Tailwind CSS has increased 7 percentage points, rising from 15% to 22%. Those who use Tailwind CSS tend to use JavaScript frameworks, such as Alpine.js, htmx, React, and Vue, more often than Bootstrap users. Bootstrap users use jQuery almost twice as often.

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

60%

djangorestframework

28%

django-celery

28%

django-debug-toolbar

18%

django-cors-headers

17%

django-filter

17%

django-allauth

16%

pytest-django

16%

django-redis

16%

django-extensions

15%

django-crispyforms

Which async technologies do you use?> 100%

25%

ASGI

23%

asyncio

18%

FastAPI

15%

Channels

15%

Uvicorn

11%

Django's async views

9%

Daphne

5%

asgiref

4%

Starlette

1%

Hypercorn

1%

Anyio

4%

Other

47%

None

Half of Django developers write asynchronous (async) views. However, whether or not respondents use async technologies does not necessarily correlate with their developer experience.

Check out more about Django asynchronous support here.

Syntax and Documentation

Do you currently use type hints in your Django code?

The more experienced developers use type hints significantly more often than those developers with less experience. Overall, 46% of Django developers use type hints.

What type checker do you use?>100%

35%

Mypy

23%

Pyright / Pylance

4%

Pytype

5%

Other

40%

None

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

22%

A lot, or often

28%

Some, or sometimes

26%

A little, or hardly ever

25%

None, or never

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

43%

Readme

29%

Self-hosted

21%

Read the Docs

19%

GitHub Pages

3%

GitBook

8%

Other

23%

We don’t publish documentation

Bigger teams are more likely to document software, such as on Github Pages which is mostly used by bigger teams.

Smaller teams publish documentation less often.

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

64%

Markdown

37%

Swagger

24%

Sphinx

17%

rST

14%

Postman

13%

wiki

8%

Other

19%

None

What principles do you adopt in the documentation for the software you’re involved in?>100%

81%

No explicitly adopted information architecture

27%

Formal documentation review

14%

Topic-based structure

13%

Code will not be merged without relevant documentation

12%

Explicit style guide for contributors

10%

Inclusive language

3%

Diátaxis

1%

DITA

4%

Other

Languages and other web-frameworks

Is Python your main programming language?

90%

Primary

10%

Secondary

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

75%

JavaScript

67%

HTML / CSS

49%

SQL

39%

Bash/Shell

25%

TypeScript

15%

C / C++

13%

Java

12%

PHP

12%

Go

9%

C#

8%

Rust

3%

Ruby

3%

R

7%

Other

3%

None

What is your primary programming language?> 100%

23%

JavaScript

12%

Java

11%

TypeScript

10%

PHP

9%

C / C++

7%

C#

5%

Go

3%

HTML / CSS

2%

Rust

2%

SQL

2%

Ruby

1%

Bash / Shell

1%

R

11%

Other

This question was only shown to those who chose Python as a secondary language.

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

33%

React.js

29%

Flask

25%

JQuery

25%

FastAPI

24%

Vue.js

8%

Express

8%

Angular

4%

Spring

4%

Laravel

3%

ASP.NET Core

Which web framework do you use the most?> 100%

83%

Django

5%

React.js

2%

Vue.js

2%

FastAPI

1%

Flask

1%

Angular

1%

Spring

5%

Other

Resources

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

59%

djangoproject.com

26%

Stack Overflow

20%

Reddit

20%

Twitter

18%

YouTube

15%

Django News Newsletter

11%

Hacker News

11%

Friends

10%

Django Forum

9%

Podcasts

7%

RSS

6%

Google Groups

4%

Discord

1%

IRC

3%

Other

16%

I don’t follow Django development

The biggest users of YouTube and Stack Overflow are developers who have worked for less than 2 years.

Those with 6 or more years of work experience almost never use YouTube for Django learning purposes. They typically read djangoproject.com and Django News.

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

80%

djangoproject.com

45%

Blogs

40%

YouTube

31%

Books

18%

Friends / co-workers

9%

Paid videos

5%

Podcasts

5%

Other

3%

None

Please think of the web resources you read or follow for Django, excluding the official Django channels> 100%

50%

YouTube channels

33%

Blogs

33%

Podcasts

16%

Twitter handles

12%

Forums

19%

Other

Python Versions

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

58%

13%

3.10

51%

60%

3.9

36%

53%

3.8

17%

31%

3.7

8%

21%

3.6 - 3.0

According to the official Python Developers Survey, Django developers prefer to use the newest Python versions more often than Python developers in general. This is particularly the case with the usage of version 3.9, which is 29 percentage points higher with Django (51%) than with Python in general (22%).

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

39%

OS-provided Python

37%

Python.org

32%

Docker containers

28%

pyenv

6%

Anaconda

4%

Build from source

3%

Automatic updates via a cloud provider

2%

Someone else manages Python updates for me

3%

Other

2%

I don't update

Developers who visit python.org tend to upgrade Python to every stable release more often than those who use OS-provided Python.

Developers located in Asia prefer using python.org twice as much as developers in general (27% vs 13%), while those located in Europe choose OS-provided Python 22 percentage points more (55% vs. 33%).

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

55%

44%

venv

43%

55%

Virtualenv

42%

40%

Docker

21%

23%

Pipenv

19%

13%

Poetry

There has been a 6 percentage point rise in Poetry’s share from 13% in 2021 to 19% by the end of 2022.

What code formatters do you use?> 100%

51%

35%

Black

28%

18%

isort

23%

30%

autopep8

19%

0%

pre-commit

1%

2%

YAPF

The share of Black code formatter has significantly increased (by 16 percentage points) when compared with last year’s survey results.

What linters do you use?> 100%

43%

40%

Flake8

41%

26%

Black

33%

37%

pylint

18%

14%

mypy

3%

4%

Other

Which top 5 Python packages do you rely on?> 100%

55%

Psycopg2

51%

Requests

40%

Gunicorn

36%

Celery

35%

Pillow

32%

pytest

31%

Black

19%

Boto3

14%

uWSGI

14%

sentry-sdk

14%

WhiteNoise

12%

factory-boy

11%

Coverage

11%

Jinja2

5%

HTTPX

2%

Bleach

2%

Model Bakery

2%

Python Slugify

2%

sorl-thumbnail

6%

Other

5%

None

Psycopg2 and Requests are the most used Python packages among Django users, each with 54%.

Requests is a popular platform among all Python developers, while Psycopg2 seems to be Django-specific.

Pillow, a module for working with images, is popular with less experienced developers.

Cloud

What cloud hosting platform do you use?> 100%

44%

AWS

23%

DigitalOcean

21%

Heroku

12%

Google Cloud Platform

10%

PythonAnywhere

8%

Microsoft Azure

7%

Linode

3%

Fly.io

1%

OpenShift

1%

OpenStack

13%

Other

20%

None

With 56% share, AWS is usually the choice for developers from North and Central America.

Heroku is leading in Africa with 39% share, whereas AWS is a close second with 37%.

Furthermore, PythonAnywhere has higher demand in Africa and the Middle East with 20% share, and in Asia it has 19%. In all other parts of the world it has less than 10%.

How do you develop locally for the cloud?> 100%

63%

Locally with virtualenv

44%

In Docker containers

8%

In virtual machines

7%

With a local system interpreter

7%

In remote development environments

2%

Directly in the production environment

2%

Other

10%

None

How do you run code in the cloud (in a production environment)?>100

54%

Within containers

33%

In virtual machines

23%

On a platform-as-a-service

9%

Serverless

2%

Other

15%

None

Development Tools

What is your primary text editor or IDE?> 100%

42%

VS Code

38%

PyCharm

7%

Vim

5%

Sublime Text

2%

Atom

2%

Emacs

1%

Notepad++

3%

Other

What is your primary local operating system?> 100%

41%

Linux

33%

macOS

16%

Windows with WSL

10%

Windows without WSL

1%

Other

What Continuous Integration (CI) system(s) do you use?> 100%

42%

35%

GitHub Actions

28%

27%

GitLab CI

10%

12%

Jenkins/Hudson

8%

8%

CircleCI

2%

6%

TravisCI

Since last year, the share of GitHub Actions has increased slightly by 7 percentage points, while Jenkins and Travis CI have lost 2 and 4 percentage points respectively.

What configuration management tools do you use?> 100%

19%

Ansible

8%

Custom solution

6%

Fabric

2%

Puppet

2%

Salt

1%

Chef

5%

Other

65%

None

Containers

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

47%

I use containers during development

45%

The application I build runs in containers in production

44%

Containers are used in the CI/CD process

31%

No / I’m not sure

2%

I use containers for another purpose

What do you run inside Docker containers?>100

91%

Application code that I develop or that my team develops

61%

Backing services that my code connects to

22%

Utilities I use during development

2%

Other

The use of Docker containers for backing services and utilities is lower for individuals and small companies with fewer than 10 people.

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

71%

Inside a virtualenv

61%

Inside a container, on my computer

15%

Using the system interpreter on my computer

9%

Inside containers, on a different computer

4%

On a different computer outside of containers

0%

Other

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

68%

I use continuous integration

40%

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

35%

I build the container image locally and then push the image

12%

I connect to the Docker engine remotely

6%

Other

How do you debug your application?> 100%

72%

Using print or log statements

56%

Using my IDE

40%

Using shell / pdb

2%

Other

45% of developers with 11 or more years of experience debug their applications using shell / pdb, while only 20% of developers with less than 1 year’s experience and 30% of developers with 1–2 years’ experience do so.

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

Demographics

What is your current employment status?>100

65%

Fully employed by a company / organization

11%

Freelancer

9%

Self-employed

6%

Student

4%

Partially employed by a company / organization

3%

Working student

1%

Retired

1%

Other

Django users freelance at twice the rate of developers in general: the share of freelancers in this survey is 11%, compared with just 5% in the total developer ecosystem and 6% in the Python Developers Survey.

What is your job role?>100

79%

Developer/Programmer

18%

Team lead

17%

Architect

12%

CTO/CIO/CEO

7%

Product manager

6%

Technical support

4%

DBA

4%

Business analyst

3%

QA Engineer

3%

Technical writer

8%

Other

What is your professional coding experience?> 100%

9%

11%

Less than 1 year

15%

17%

1–2 years

22%

24%

3–5 years

21%

19%

6–10 years

33%

29%

11+ years

This year’s demographics show that the 2022 survey respondents are slightly more experienced than last year’s.

How long have you been programming in Python?> 100%

6%

8%

Less than 1 year

16%

21%

1–2 years

30%

31%

3–5 years

28%

24%

6–10 years

19%

16%

11+ years

What is your age range?

2%

Under 18

4%

18–20

30%

21–29

37%

30–39

19%

40–49

6%

50–59

2%

60 or older

1%

I prefer not to answer

Which region are you based in?

45%

Europe

19%

North America

18%

Asia

7%

South America

7%

Africa

3%

Middle East

2%

Oceania

1%

Central America

1%

Other

What is your country or region?

15%

United States

7%

India

6%

Germany

5%

France

5%

United Kingdom

3%

Spain

3%

Russian Federation

3%

Brazil

3%

Poland

3%

China Mainland

2%

Canada

2%

Netherlands

2%

Italy

2%

Australia

2%

Iran

1%

Nigeria

Company

What is your company size?

18%

Just me

20%

2–10 people

20%

11–50 people

20%

51–500 people

5%

501–1,000 people

5%

1,001–5,000 people

8%

More than 5,000 people

3%

Not sure

Within your company, what team size do you work on?

9%

Just me

67%

2–7 people

14%

8–12 people

6%

13–20 people

2%

21–40 people

1%

More than 40 people

Django developers tend to work in small teams.

How many projects do you work on?

The more experienced the developer, the more projects they tend to have. Developers with less experience generally work on one main project with several side projects, or even on a single main project.

Do you work in a team or independently?

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

38%

Information Technology / Software Development

8%

Education / Training

7%

Accounting / Finance / Insurance

5%

Medicine / Health

3%

Sales / Distribution / Business Development

3%

Science

3%

Non-profit

3%

Banking / Real Estate / Mortgage Financing

3%

Manufacturing

2%

Administration / Management

2%

Logistics/ Transportation

2%

Marketing

2%

Business / Strategic Management

2%

Service/ Maintenance

1%

Publishing

1%

Security

1%

Human Resources

1%

Restaurants / Hospitality

1%

Construction / Architecture

1%

Design

1%

Law

1%

Customer Support

10%

Other

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 @jetbrains and @djangoproject on Twitter 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. After filtering out duplicate and unreliable responses, the data set includes around 4,900 responses collected in September – October, 2022 through the promotion of the survey on official Django channels, such as djangoproject.com and the DSF's Twitter account. 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.

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 JetBrains, 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.