Django Framework: Packages and Modules Directory Structure Explained

neotam Avatar

Django Framework: Packages and Modules Directory Structure Explained
Posted on :
,

Tags :

Django the popular web development framework for Python. It is based on Model View and Template referred as MVT.

Install Django as follows

pip install django 

This article takes to the directory structure of whole Django framework and explains what each package and what each module is responsible for

If you want to explore the Django source code. Clone it as follows

git clone https://github.com/django/django.git

This Article is baed on Django version 4.1

The command tree will print the directory structure of Django.

Top level packages of Django are print using “tree -L 1”

.
├── __init__.py
├── __main__.py
├── apps
├── conf
├── contrib
├── core
├── db
├── dispatch
├── forms
├── http
├── middleware
├── shortcuts.py
├── template
├── templatetags
├── test
├── urls
├── utils
└── views

As it is shown above, all top level packages are shown. Each of the top level packages of Django is explained as follows

Django PackageDescription Documentation
appsDjango contains installed apps registry. Installed application store configuration which can be available through django.apps
confProvides the way to access configuration
contribDjango follows the python principle “Batteries included” philosophy such that it ships with extra application and tools helpful to solve common web development problems and provides boiler plate code and best practices Django Contrib
coreCore functionalities Like files, mail, serializers, cache and management commands etc
dbAll database related stuff is here. Such as, backends, models and migrations etc
dispatch
formsTools and libraries to build forms to accept input from users and also provides ways to process and respond to input received Django Forms
httpProvides the API to deal with request, response, multipart parsing and cookies
middlewareDjango Middleware
templateAPI for Django Templating Language
templatetags
testDjango Test Suite
urlsAPI to write Django URL’s (routes)
utilsAPI for utility functions
viewsMain and important one. Django Views
shortcuts.pyCurated list of Classes and functions and aliases
__init__.py__init__.py for django folder to be a package
__main__.py


Directory structure of Django framework for packages and modules going one more level deep using command “tree -L 2”

Django Packages digging deep into level 2

.
├── apps
├── conf
│   ├── app_template
│   ├── project_template
│   └── urls
├── contrib
│   ├── admin
│   ├── admindocs
│   ├── auth
│   ├── contenttypes
│   ├── flatpages
│   ├── gis
│   ├── humanize
│   ├── messages
│   ├── postgres
│   ├── redirects
│   ├── sessions
│   ├── sitemaps
│   ├── sites
│   ├── staticfiles
│   └── syndication
├── core
│   ├── cache
│   ├── checks
│   ├── files
│   ├── handlers
│   ├── mail
│   ├── management
│   ├── serializers
│   └── servers
├── db
│   ├── backends
│   ├── migrations
│   └── models
├── dispatch
├── forms
│   ├── jinja2
│   └── templates
├── http
├── middleware
├── template
│   ├── backends
│   └── loaders
├── templatetags
├── test
├── urls
├── utils
│   └── translation
└── views
    ├── decorators
    ├── generic
    └── templates

Each Django Contrib app explained as follows

adminDjango Admin Interface that comes with Django
admindocsProvides the documentation for all INSTALLED_APPS for models, views, template tags and template filters
authDjango’s Authentication Framework
contenttypesA framework for hooking into different content types. Where each Django model is a separate content type
flatpagesApp to manage (flat) HTML content in database
gisGeospatial framework
humanizeDjango template filter. To use it add ‘django.contrib.humanize’ to INSTALL_APPS and then use {% load humanize %}
messagesTo store and retrieve temporary cookie or session based messages
postgresOffers PostgreSQL specific features
redirectsA framework for mapping redirects
sessionsFramework for storing session data in anonymous session
sitemapsGenerate sitemap in XML to be used by search engines like Google, Bing, Yahoo
sitesTo operate multiple website from same database
staticfilesCollects all static files from each application installed into a single directory
Command: django-admin collectstatic would collect static files into STATIC_ROOT directory
syndicationSyndicate feed generator for generating RSS and Atom Feeds

All packages and directories listed recursively is as follows

.
├── apps
├── conf
│   ├── app_template
│   │   └── migrations
│   ├── project_template
│   │   └── project_name
│   └── urls
├── contrib
│   ├── admin
│   │   ├── migrations
│   │   ├── static
│   │   │   └── admin
│   │   │       ├── css
│   │   │       │   └── vendor
│   │   │       │       └── select2
│   │   │       ├── img
│   │   │       │   └── gis
│   │   │       └── js
│   │   │           ├── admin
│   │   │           └── vendor
│   │   │               ├── jquery
│   │   │               ├── select2
│   │   │               │   └── i18n
│   │   │               └── xregexp
│   │   ├── templates
│   │   │   ├── admin
│   │   │   │   ├── auth
│   │   │   │   │   └── user
│   │   │   │   ├── edit_inline
│   │   │   │   ├── includes
│   │   │   │   └── widgets
│   │   │   └── registration
│   │   ├── templatetags
│   │   └── views
│   ├── admindocs
│   │   └── templates
│   │       └── admin_doc
│   ├── auth
│   │   ├── handlers
│   │   ├── management
│   │   │   └── commands
│   │   ├── migrations
│   │   └── templates
│   │       ├── auth
│   │       │   └── widgets
│   │       └── registration
│   ├── contenttypes
│   │   ├── management
│   │   │   └── commands
│   │   └── migrations
│   ├── flatpages
│   │   ├── migrations
│   │   └── templatetags
│   ├── gis
│   │   ├── admin
│   │   ├── db
│   │   │   ├── backends
│   │   │   │   ├── base
│   │   │   │   ├── mysql
│   │   │   │   ├── oracle
│   │   │   │   ├── postgis
│   │   │   │   └── spatialite
│   │   │   └── models
│   │   │       └── sql
│   │   ├── forms
│   │   ├── gdal
│   │   │   ├── prototypes
│   │   │   └── raster
│   │   ├── geoip2
│   │   ├── geos
│   │   │   └── prototypes
│   │   ├── management
│   │   │   └── commands
│   │   ├── serializers
│   │   ├── sitemaps
│   │   ├── static
│   │   │   └── gis
│   │   │       ├── css
│   │   │       ├── img
│   │   │       └── js
│   │   ├── templates
│   │   │   └── gis
│   │   │       ├── admin
│   │   │       └── kml
│   │   └── utils
│   ├── humanize
│   │   └── templatetags
│   ├── messages
│   │   └── storage
│   ├── postgres
│   │   ├── aggregates
│   │   ├── fields
│   │   ├── forms
│   │   ├── jinja2
│   │   │   └── postgres
│   │   │       └── widgets
│   │   └── templates
│   │       └── postgres
│   │           └── widgets
│   ├── redirects
│   │   └── migrations
│   ├── sessions
│   │   ├── backends
│   │   ├── management
│   │   │   └── commands
│   │   └── migrations
│   ├── sitemaps
│   │   ├── management
│   │   │   └── commands
│   │   └── templates
│   ├── sites
│   │   └── migrations
│   ├── staticfiles
│   │   └── management
│   │       └── commands
│   └── syndication
├── core
│   ├── cache
│   │   └── backends
│   ├── checks
│   │   ├── compatibility
│   │   └── security
│   ├── files
│   │   └── storage
│   ├── handlers
│   ├── mail
│   │   └── backends
│   ├── management
│   │   └── commands
│   ├── serializers
│   └── servers
├── db
│   ├── backends
│   │   ├── base
│   │   ├── dummy
│   │   ├── mysql
│   │   ├── oracle
│   │   ├── postgresql
│   │   └── sqlite3
│   ├── migrations
│   │   └── operations
│   └── models
│       ├── fields
│       ├── functions
│       └── sql
├── dispatch
├── forms
│   ├── jinja2
│   │   └── django
│   │       └── forms
│   │           ├── errors
│   │           │   ├── dict
│   │           │   └── list
│   │           ├── formsets
│   │           └── widgets
│   └── templates
│       └── django
│           └── forms
│               ├── errors
│               │   ├── dict
│               │   └── list
│               ├── formsets
│               └── widgets
├── http
├── middleware
├── template
│   ├── backends
│   └── loaders
├── templatetags
├── test
├── urls
├── utils
│   └── translation
└── views
    ├── decorators
    ├── generic
    └── templates
tree -L 2 -C -I "locale" -h  -T 'Django Framework Directory Tree' -H .

Django Framework Directory Tree

.
├── __init__.py
├── __main__.py
├── apps
│   ├── __init__.py
│   ├── config.py
│   └── registry.py
├── conf
│   ├── __init__.py
│   ├── app_template
│   │   ├── __init__.py-tpl
│   │   ├── admin.py-tpl
│   │   ├── apps.py-tpl
│   │   ├── migrations
│   │   │   └── __init__.py-tpl
│   │   ├── models.py-tpl
│   │   ├── tests.py-tpl
│   │   └── views.py-tpl
│   ├── global_settings.py
│   ├── project_template
│   │   ├── manage.py-tpl
│   │   └── project_name
│   │       ├── __init__.py-tpl
│   │       ├── asgi.py-tpl
│   │       ├── settings.py-tpl
│   │       ├── urls.py-tpl
│   │       └── wsgi.py-tpl
│   └── urls
│       ├── __init__.py
│       ├── i18n.py
│       └── static.py
├── contrib
│   ├── __init__.py
│   ├── admin
│   │   ├── __init__.py
│   │   ├── actions.py
│   │   ├── apps.py
│   │   ├── checks.py
│   │   ├── decorators.py
│   │   ├── exceptions.py
│   │   ├── filters.py
│   │   ├── forms.py
│   │   ├── helpers.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_logentry_remove_auto_add.py
│   │   │   ├── 0003_logentry_add_action_flag_choices.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── options.py
│   │   ├── sites.py
│   │   ├── static
│   │   │   └── admin
│   │   │       ├── css
│   │   │       │   ├── autocomplete.css
│   │   │       │   ├── base.css
│   │   │       │   ├── changelists.css
│   │   │       │   ├── dark_mode.css
│   │   │       │   ├── dashboard.css
│   │   │       │   ├── forms.css
│   │   │       │   ├── login.css
│   │   │       │   ├── nav_sidebar.css
│   │   │       │   ├── responsive.css
│   │   │       │   ├── responsive_rtl.css
│   │   │       │   ├── rtl.css
│   │   │       │   ├── vendor
│   │   │       │   │   └── select2
│   │   │       │   │       ├── LICENSE-SELECT2.md
│   │   │       │   │       ├── select2.css
│   │   │       │   │       └── select2.min.css
│   │   │       │   └── widgets.css
│   │   │       ├── img
│   │   │       │   ├── LICENSE
│   │   │       │   ├── README.txt
│   │   │       │   └── gis
│   │   │       └── js
│   │   │           ├── admin
│   │   │           └── vendor
│   │   │               ├── jquery
│   │   │               │   └── LICENSE.txt
│   │   │               ├── select2
│   │   │               │   ├── LICENSE.md
│   │   │               │   └── i18n
│   │   │               └── xregexp
│   │   │                   └── LICENSE.txt
│   │   ├── templates
│   │   │   ├── admin
│   │   │   │   ├── auth
│   │   │   │   │   └── user
│   │   │   │   ├── edit_inline
│   │   │   │   ├── includes
│   │   │   │   └── widgets
│   │   │   └── registration
│   │   ├── templatetags
│   │   │   ├── __init__.py
│   │   │   ├── admin_list.py
│   │   │   ├── admin_modify.py
│   │   │   ├── admin_urls.py
│   │   │   ├── base.py
│   │   │   └── log.py
│   │   ├── tests.py
│   │   ├── utils.py
│   │   ├── views
│   │   │   ├── __init__.py
│   │   │   ├── autocomplete.py
│   │   │   ├── decorators.py
│   │   │   └── main.py
│   │   └── widgets.py
│   ├── admindocs
│   │   ├── __init__.py
│   │   ├── apps.py
│   │   ├── middleware.py
│   │   ├── templates
│   │   │   └── admin_doc
│   │   ├── urls.py
│   │   ├── utils.py
│   │   └── views.py
│   ├── auth
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── backends.py
│   │   ├── base_user.py
│   │   ├── checks.py
│   │   ├── common-passwords.txt.gz
│   │   ├── context_processors.py
│   │   ├── decorators.py
│   │   ├── forms.py
│   │   ├── handlers
│   │   │   ├── __init__.py
│   │   │   └── modwsgi.py
│   │   ├── hashers.py
│   │   ├── management
│   │   │   ├── __init__.py
│   │   │   └── commands
│   │   │       ├── __init__.py
│   │   │       ├── changepassword.py
│   │   │       └── createsuperuser.py
│   │   ├── middleware.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_alter_permission_name_max_length.py
│   │   │   ├── 0003_alter_user_email_max_length.py
│   │   │   ├── 0004_alter_user_username_opts.py
│   │   │   ├── 0005_alter_user_last_login_null.py
│   │   │   ├── 0006_require_contenttypes_0002.py
│   │   │   ├── 0007_alter_validators_add_error_messages.py
│   │   │   ├── 0008_alter_user_username_max_length.py
│   │   │   ├── 0009_alter_user_last_name_max_length.py
│   │   │   ├── 0010_alter_group_name_max_length.py
│   │   │   ├── 0011_update_proxy_permissions.py
│   │   │   ├── 0012_alter_user_first_name_max_length.py
│   │   │   └── __init__.py
│   │   ├── mixins.py
│   │   ├── models.py
│   │   ├── password_validation.py
│   │   ├── signals.py
│   │   ├── templates
│   │   │   ├── auth
│   │   │   │   └── widgets
│   │   │   └── registration
│   │   │       └── password_reset_subject.txt
│   │   ├── tokens.py
│   │   ├── urls.py
│   │   ├── validators.py
│   │   └── views.py
│   ├── contenttypes
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── checks.py
│   │   ├── fields.py
│   │   ├── forms.py
│   │   ├── management
│   │   │   ├── __init__.py
│   │   │   └── commands
│   │   │       ├── __init__.py
│   │   │       └── remove_stale_contenttypes.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_remove_content_type_name.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   └── views.py
│   ├── flatpages
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── forms.py
│   │   ├── middleware.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── sitemaps.py
│   │   ├── templatetags
│   │   │   ├── __init__.py
│   │   │   └── flatpages.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── gis
│   │   ├── __init__.py
│   │   ├── admin
│   │   │   ├── __init__.py
│   │   │   ├── options.py
│   │   │   └── widgets.py
│   │   ├── apps.py
│   │   ├── db
│   │   │   ├── __init__.py
│   │   │   ├── backends
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── adapter.py
│   │   │   │   │   ├── features.py
│   │   │   │   │   ├── models.py
│   │   │   │   │   └── operations.py
│   │   │   │   ├── mysql
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── base.py
│   │   │   │   │   ├── features.py
│   │   │   │   │   ├── introspection.py
│   │   │   │   │   ├── operations.py
│   │   │   │   │   └── schema.py
│   │   │   │   ├── oracle
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── adapter.py
│   │   │   │   │   ├── base.py
│   │   │   │   │   ├── features.py
│   │   │   │   │   ├── introspection.py
│   │   │   │   │   ├── models.py
│   │   │   │   │   ├── operations.py
│   │   │   │   │   └── schema.py
│   │   │   │   ├── postgis
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── adapter.py
│   │   │   │   │   ├── base.py
│   │   │   │   │   ├── const.py
│   │   │   │   │   ├── features.py
│   │   │   │   │   ├── introspection.py
│   │   │   │   │   ├── models.py
│   │   │   │   │   ├── operations.py
│   │   │   │   │   ├── pgraster.py
│   │   │   │   │   └── schema.py
│   │   │   │   ├── spatialite
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   ├── adapter.py
│   │   │   │   │   ├── base.py
│   │   │   │   │   ├── client.py
│   │   │   │   │   ├── features.py
│   │   │   │   │   ├── introspection.py
│   │   │   │   │   ├── models.py
│   │   │   │   │   ├── operations.py
│   │   │   │   │   └── schema.py
│   │   │   │   └── utils.py
│   │   │   └── models
│   │   │       ├── __init__.py
│   │   │       ├── aggregates.py
│   │   │       ├── fields.py
│   │   │       ├── functions.py
│   │   │       ├── lookups.py
│   │   │       ├── proxy.py
│   │   │       └── sql
│   │   │           ├── __init__.py
│   │   │           └── conversion.py
│   │   ├── feeds.py
│   │   ├── forms
│   │   │   ├── __init__.py
│   │   │   ├── fields.py
│   │   │   └── widgets.py
│   │   ├── gdal
│   │   │   ├── LICENSE
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── datasource.py
│   │   │   ├── driver.py
│   │   │   ├── envelope.py
│   │   │   ├── error.py
│   │   │   ├── feature.py
│   │   │   ├── field.py
│   │   │   ├── geometries.py
│   │   │   ├── geomtype.py
│   │   │   ├── layer.py
│   │   │   ├── libgdal.py
│   │   │   ├── prototypes
│   │   │   │   ├── __init__.py
│   │   │   │   ├── ds.py
│   │   │   │   ├── errcheck.py
│   │   │   │   ├── generation.py
│   │   │   │   ├── geom.py
│   │   │   │   ├── raster.py
│   │   │   │   └── srs.py
│   │   │   ├── raster
│   │   │   │   ├── __init__.py
│   │   │   │   ├── band.py
│   │   │   │   ├── base.py
│   │   │   │   ├── const.py
│   │   │   │   └── source.py
│   │   │   └── srs.py
│   │   ├── geoip2
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   └── resources.py
│   │   ├── geometry.py
│   │   ├── geos
│   │   │   ├── LICENSE
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── collections.py
│   │   │   ├── coordseq.py
│   │   │   ├── error.py
│   │   │   ├── factory.py
│   │   │   ├── geometry.py
│   │   │   ├── io.py
│   │   │   ├── libgeos.py
│   │   │   ├── linestring.py
│   │   │   ├── mutable_list.py
│   │   │   ├── point.py
│   │   │   ├── polygon.py
│   │   │   ├── prepared.py
│   │   │   └── prototypes
│   │   │       ├── __init__.py
│   │   │       ├── coordseq.py
│   │   │       ├── errcheck.py
│   │   │       ├── geom.py
│   │   │       ├── io.py
│   │   │       ├── misc.py
│   │   │       ├── predicates.py
│   │   │       ├── prepared.py
│   │   │       ├── threadsafe.py
│   │   │       └── topology.py
│   │   ├── management
│   │   │   ├── __init__.py
│   │   │   └── commands
│   │   │       ├── __init__.py
│   │   │       ├── inspectdb.py
│   │   │       └── ogrinspect.py
│   │   ├── measure.py
│   │   ├── ptr.py
│   │   ├── serializers
│   │   │   ├── __init__.py
│   │   │   └── geojson.py
│   │   ├── shortcuts.py
│   │   ├── sitemaps
│   │   │   ├── __init__.py
│   │   │   ├── kml.py
│   │   │   └── views.py
│   │   ├── static
│   │   │   └── gis
│   │   │       ├── css
│   │   │       │   └── ol3.css
│   │   │       ├── img
│   │   │       └── js
│   │   ├── templates
│   │   │   └── gis
│   │   │       ├── admin
│   │   │       └── kml
│   │   │           ├── base.kml
│   │   │           └── placemarks.kml
│   │   ├── utils
│   │   │   ├── __init__.py
│   │   │   ├── layermapping.py
│   │   │   ├── ogrinfo.py
│   │   │   ├── ogrinspect.py
│   │   │   └── srs.py
│   │   └── views.py
│   ├── humanize
│   │   ├── __init__.py
│   │   ├── apps.py
│   │   └── templatetags
│   │       ├── __init__.py
│   │       └── humanize.py
│   ├── messages
│   │   ├── __init__.py
│   │   ├── api.py
│   │   ├── apps.py
│   │   ├── constants.py
│   │   ├── context_processors.py
│   │   ├── middleware.py
│   │   ├── storage
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── cookie.py
│   │   │   ├── fallback.py
│   │   │   └── session.py
│   │   ├── utils.py
│   │   └── views.py
│   ├── postgres
│   │   ├── __init__.py
│   │   ├── aggregates
│   │   │   ├── __init__.py
│   │   │   ├── general.py
│   │   │   ├── mixins.py
│   │   │   └── statistics.py
│   │   ├── apps.py
│   │   ├── constraints.py
│   │   ├── expressions.py
│   │   ├── fields
│   │   │   ├── __init__.py
│   │   │   ├── array.py
│   │   │   ├── citext.py
│   │   │   ├── hstore.py
│   │   │   ├── jsonb.py
│   │   │   ├── ranges.py
│   │   │   └── utils.py
│   │   ├── forms
│   │   │   ├── __init__.py
│   │   │   ├── array.py
│   │   │   ├── hstore.py
│   │   │   └── ranges.py
│   │   ├── functions.py
│   │   ├── indexes.py
│   │   ├── jinja2
│   │   │   └── postgres
│   │   │       └── widgets
│   │   ├── lookups.py
│   │   ├── operations.py
│   │   ├── search.py
│   │   ├── serializers.py
│   │   ├── signals.py
│   │   ├── templates
│   │   │   └── postgres
│   │   │       └── widgets
│   │   ├── utils.py
│   │   └── validators.py
│   ├── redirects
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── middleware.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_alter_redirect_new_path_help_text.py
│   │   │   └── __init__.py
│   │   └── models.py
│   ├── sessions
│   │   ├── __init__.py
│   │   ├── apps.py
│   │   ├── backends
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── cache.py
│   │   │   ├── cached_db.py
│   │   │   ├── db.py
│   │   │   ├── file.py
│   │   │   └── signed_cookies.py
│   │   ├── base_session.py
│   │   ├── exceptions.py
│   │   ├── management
│   │   │   ├── __init__.py
│   │   │   └── commands
│   │   │       ├── __init__.py
│   │   │       └── clearsessions.py
│   │   ├── middleware.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   └── serializers.py
│   ├── sitemaps
│   │   ├── __init__.py
│   │   ├── apps.py
│   │   ├── management
│   │   │   ├── __init__.py
│   │   │   └── commands
│   │   │       ├── __init__.py
│   │   │       └── ping_google.py
│   │   ├── templates
│   │   │   ├── sitemap.xml
│   │   │   └── sitemap_index.xml
│   │   └── views.py
│   ├── sites
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── checks.py
│   │   ├── management.py
│   │   ├── managers.py
│   │   ├── middleware.py
│   │   ├── migrations
│   │   │   ├── 0001_initial.py
│   │   │   ├── 0002_alter_domain_unique.py
│   │   │   └── __init__.py
│   │   ├── models.py
│   │   ├── requests.py
│   │   └── shortcuts.py
│   ├── staticfiles
│   │   ├── __init__.py
│   │   ├── apps.py
│   │   ├── checks.py
│   │   ├── finders.py
│   │   ├── handlers.py
│   │   ├── management
│   │   │   ├── __init__.py
│   │   │   └── commands
│   │   │       ├── __init__.py
│   │   │       ├── collectstatic.py
│   │   │       ├── findstatic.py
│   │   │       └── runserver.py
│   │   ├── storage.py
│   │   ├── testing.py
│   │   ├── urls.py
│   │   ├── utils.py
│   │   └── views.py
│   └── syndication
│       ├── __init__.py
│       ├── apps.py
│       └── views.py
├── core
│   ├── __init__.py
│   ├── asgi.py
│   ├── cache
│   │   ├── __init__.py
│   │   ├── backends
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── db.py
│   │   │   ├── dummy.py
│   │   │   ├── filebased.py
│   │   │   ├── locmem.py
│   │   │   ├── memcached.py
│   │   │   └── redis.py
│   │   └── utils.py
│   ├── checks
│   │   ├── __init__.py
│   │   ├── async_checks.py
│   │   ├── caches.py
│   │   ├── compatibility
│   │   │   ├── __init__.py
│   │   │   └── django_4_0.py
│   │   ├── database.py
│   │   ├── files.py
│   │   ├── messages.py
│   │   ├── model_checks.py
│   │   ├── registry.py
│   │   ├── security
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── csrf.py
│   │   │   └── sessions.py
│   │   ├── templates.py
│   │   ├── translation.py
│   │   └── urls.py
│   ├── exceptions.py
│   ├── files
│   │   ├── __init__.py
│   │   ├── base.py
│   │   ├── images.py
│   │   ├── locks.py
│   │   ├── move.py
│   │   ├── storage
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── filesystem.py
│   │   │   └── mixins.py
│   │   ├── temp.py
│   │   ├── uploadedfile.py
│   │   ├── uploadhandler.py
│   │   └── utils.py
│   ├── handlers
│   │   ├── __init__.py
│   │   ├── asgi.py
│   │   ├── base.py
│   │   ├── exception.py
│   │   └── wsgi.py
│   ├── mail
│   │   ├── __init__.py
│   │   ├── backends
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── console.py
│   │   │   ├── dummy.py
│   │   │   ├── filebased.py
│   │   │   ├── locmem.py
│   │   │   └── smtp.py
│   │   ├── message.py
│   │   └── utils.py
│   ├── management
│   │   ├── __init__.py
│   │   ├── base.py
│   │   ├── color.py
│   │   ├── commands
│   │   │   ├── __init__.py
│   │   │   ├── check.py
│   │   │   ├── compilemessages.py
│   │   │   ├── createcachetable.py
│   │   │   ├── dbshell.py
│   │   │   ├── diffsettings.py
│   │   │   ├── dumpdata.py
│   │   │   ├── flush.py
│   │   │   ├── inspectdb.py
│   │   │   ├── loaddata.py
│   │   │   ├── makemessages.py
│   │   │   ├── makemigrations.py
│   │   │   ├── migrate.py
│   │   │   ├── optimizemigration.py
│   │   │   ├── runserver.py
│   │   │   ├── sendtestemail.py
│   │   │   ├── shell.py
│   │   │   ├── showmigrations.py
│   │   │   ├── sqlflush.py
│   │   │   ├── sqlmigrate.py
│   │   │   ├── sqlsequencereset.py
│   │   │   ├── squashmigrations.py
│   │   │   ├── startapp.py
│   │   │   ├── startproject.py
│   │   │   ├── test.py
│   │   │   └── testserver.py
│   │   ├── sql.py
│   │   ├── templates.py
│   │   └── utils.py
│   ├── paginator.py
│   ├── serializers
│   │   ├── __init__.py
│   │   ├── base.py
│   │   ├── json.py
│   │   ├── jsonl.py
│   │   ├── python.py
│   │   ├── pyyaml.py
│   │   └── xml_serializer.py
│   ├── servers
│   │   ├── __init__.py
│   │   └── basehttp.py
│   ├── signals.py
│   ├── signing.py
│   ├── validators.py
│   └── wsgi.py
├── db
│   ├── __init__.py
│   ├── backends
│   │   ├── __init__.py
│   │   ├── base
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── client.py
│   │   │   ├── creation.py
│   │   │   ├── features.py
│   │   │   ├── introspection.py
│   │   │   ├── operations.py
│   │   │   ├── schema.py
│   │   │   └── validation.py
│   │   ├── ddl_references.py
│   │   ├── dummy
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   └── features.py
│   │   ├── mysql
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── client.py
│   │   │   ├── compiler.py
│   │   │   ├── creation.py
│   │   │   ├── features.py
│   │   │   ├── introspection.py
│   │   │   ├── operations.py
│   │   │   ├── schema.py
│   │   │   └── validation.py
│   │   ├── oracle
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── client.py
│   │   │   ├── creation.py
│   │   │   ├── features.py
│   │   │   ├── functions.py
│   │   │   ├── introspection.py
│   │   │   ├── operations.py
│   │   │   ├── schema.py
│   │   │   ├── utils.py
│   │   │   └── validation.py
│   │   ├── postgresql
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── client.py
│   │   │   ├── creation.py
│   │   │   ├── features.py
│   │   │   ├── introspection.py
│   │   │   ├── operations.py
│   │   │   └── schema.py
│   │   ├── signals.py
│   │   ├── sqlite3
│   │   │   ├── __init__.py
│   │   │   ├── _functions.py
│   │   │   ├── base.py
│   │   │   ├── client.py
│   │   │   ├── creation.py
│   │   │   ├── features.py
│   │   │   ├── introspection.py
│   │   │   ├── operations.py
│   │   │   └── schema.py
│   │   └── utils.py
│   ├── migrations
│   │   ├── __init__.py
│   │   ├── autodetector.py
│   │   ├── exceptions.py
│   │   ├── executor.py
│   │   ├── graph.py
│   │   ├── loader.py
│   │   ├── migration.py
│   │   ├── operations
│   │   │   ├── __init__.py
│   │   │   ├── base.py
│   │   │   ├── fields.py
│   │   │   ├── models.py
│   │   │   └── special.py
│   │   ├── optimizer.py
│   │   ├── questioner.py
│   │   ├── recorder.py
│   │   ├── serializer.py
│   │   ├── state.py
│   │   ├── utils.py
│   │   └── writer.py
│   ├── models
│   │   ├── __init__.py
│   │   ├── aggregates.py
│   │   ├── base.py
│   │   ├── constants.py
│   │   ├── constraints.py
│   │   ├── deletion.py
│   │   ├── enums.py
│   │   ├── expressions.py
│   │   ├── fields
│   │   │   ├── __init__.py
│   │   │   ├── files.py
│   │   │   ├── json.py
│   │   │   ├── mixins.py
│   │   │   ├── proxy.py
│   │   │   ├── related.py
│   │   │   ├── related_descriptors.py
│   │   │   ├── related_lookups.py
│   │   │   └── reverse_related.py
│   │   ├── functions
│   │   │   ├── __init__.py
│   │   │   ├── comparison.py
│   │   │   ├── datetime.py
│   │   │   ├── math.py
│   │   │   ├── mixins.py
│   │   │   ├── text.py
│   │   │   └── window.py
│   │   ├── indexes.py
│   │   ├── lookups.py
│   │   ├── manager.py
│   │   ├── options.py
│   │   ├── query.py
│   │   ├── query_utils.py
│   │   ├── signals.py
│   │   ├── sql
│   │   │   ├── __init__.py
│   │   │   ├── compiler.py
│   │   │   ├── constants.py
│   │   │   ├── datastructures.py
│   │   │   ├── query.py
│   │   │   ├── subqueries.py
│   │   │   └── where.py
│   │   └── utils.py
│   ├── transaction.py
│   └── utils.py
├── dispatch
│   ├── __init__.py
│   ├── dispatcher.py
│   └── license.txt
├── forms
│   ├── __init__.py
│   ├── boundfield.py
│   ├── fields.py
│   ├── forms.py
│   ├── formsets.py
│   ├── jinja2
│   │   └── django
│   │       └── forms
│   │           ├── errors
│   │           │   ├── dict
│   │           │   │   └── text.txt
│   │           │   └── list
│   │           │       └── text.txt
│   │           ├── formsets
│   │           └── widgets
│   ├── models.py
│   ├── renderers.py
│   ├── templates
│   │   └── django
│   │       └── forms
│   │           ├── errors
│   │           │   ├── dict
│   │           │   │   └── text.txt
│   │           │   └── list
│   │           │       └── text.txt
│   │           ├── formsets
│   │           └── widgets
│   ├── utils.py
│   └── widgets.py
├── http
│   ├── __init__.py
│   ├── cookie.py
│   ├── multipartparser.py
│   ├── request.py
│   └── response.py
├── middleware
│   ├── __init__.py
│   ├── cache.py
│   ├── clickjacking.py
│   ├── common.py
│   ├── csrf.py
│   ├── gzip.py
│   ├── http.py
│   ├── locale.py
│   └── security.py
├── shortcuts.py
├── template
│   ├── __init__.py
│   ├── autoreload.py
│   ├── backends
│   │   ├── __init__.py
│   │   ├── base.py
│   │   ├── django.py
│   │   ├── dummy.py
│   │   ├── jinja2.py
│   │   └── utils.py
│   ├── base.py
│   ├── context.py
│   ├── context_processors.py
│   ├── defaultfilters.py
│   ├── defaulttags.py
│   ├── engine.py
│   ├── exceptions.py
│   ├── library.py
│   ├── loader.py
│   ├── loader_tags.py
│   ├── loaders
│   │   ├── __init__.py
│   │   ├── app_directories.py
│   │   ├── base.py
│   │   ├── cached.py
│   │   ├── filesystem.py
│   │   └── locmem.py
│   ├── response.py
│   ├── smartif.py
│   └── utils.py
├── templatetags
│   ├── __init__.py
│   ├── cache.py
│   ├── i18n.py
│   ├── l10n.py
│   ├── static.py
│   └── tz.py
├── test
│   ├── __init__.py
│   ├── client.py
│   ├── html.py
│   ├── runner.py
│   ├── selenium.py
│   ├── signals.py
│   ├── testcases.py
│   └── utils.py
├── urls
│   ├── __init__.py
│   ├── base.py
│   ├── conf.py
│   ├── converters.py
│   ├── exceptions.py
│   ├── resolvers.py
│   └── utils.py
├── utils
│   ├── __init__.py
│   ├── _os.py
│   ├── archive.py
│   ├── asyncio.py
│   ├── autoreload.py
│   ├── baseconv.py
│   ├── cache.py
│   ├── connection.py
│   ├── crypto.py
│   ├── datastructures.py
│   ├── dateformat.py
│   ├── dateparse.py
│   ├── dates.py
│   ├── datetime_safe.py
│   ├── deconstruct.py
│   ├── decorators.py
│   ├── deprecation.py
│   ├── duration.py
│   ├── encoding.py
│   ├── feedgenerator.py
│   ├── formats.py
│   ├── functional.py
│   ├── hashable.py
│   ├── html.py
│   ├── http.py
│   ├── inspect.py
│   ├── ipv6.py
│   ├── itercompat.py
│   ├── jslex.py
│   ├── log.py
│   ├── lorem_ipsum.py
│   ├── module_loading.py
│   ├── numberformat.py
│   ├── regex_helper.py
│   ├── safestring.py
│   ├── termcolors.py
│   ├── text.py
│   ├── timesince.py
│   ├── timezone.py
│   ├── topological_sort.py
│   ├── translation
│   │   ├── __init__.py
│   │   ├── reloader.py
│   │   ├── template.py
│   │   ├── trans_null.py
│   │   └── trans_real.py
│   ├── tree.py
│   ├── version.py
│   └── xmlutils.py
└── views
    ├── __init__.py
    ├── csrf.py
    ├── debug.py
    ├── decorators
    │   ├── __init__.py
    │   ├── cache.py
    │   ├── clickjacking.py
    │   ├── common.py
    │   ├── csrf.py
    │   ├── debug.py
    │   ├── gzip.py
    │   ├── http.py
    │   └── vary.py
    ├── defaults.py
    ├── generic
    │   ├── __init__.py
    │   ├── base.py
    │   ├── dates.py
    │   ├── detail.py
    │   ├── edit.py
    │   └── list.py
    ├── i18n.py
    ├── static.py
    └── templates
        └── technical_500.txt


Tree command used to generate above directory tree for Django framework source code

tree  -C -I "locale" -I "*.html" -I "*.js" -I "*.png" -I "*.svg"  -H . --nolinks  -T 'Django Framework Directory Tree'

Leave a Reply

Your email address will not be published. Required fields are marked *