---
title: "Using Django"
version: 3.0
locale: en
source: https://docs.djangoproject.com/en/3.0/topics/
canonical: https://djangodocs.dev/en/3.0/topics/
---
# Using Django

Introductions to all the key parts of Django you’ll need to know:

- [How to install Django](/en/3.0/topics/install/)

  - [Install Python](/en/3.0/topics/install/#install-python)
  - [Install Apache and `mod_wsgi`](/en/3.0/topics/install/#install-apache-and-mod-wsgi)
  - [Get your database running](/en/3.0/topics/install/#get-your-database-running)
  - [Install the Django code](/en/3.0/topics/install/#install-the-django-code)
- [Models and databases](/en/3.0/topics/db/)

  - [Models](/en/3.0/topics/db/models/)
  - [Making queries](/en/3.0/topics/db/queries/)
  - [Aggregation](/en/3.0/topics/db/aggregation/)
  - [Search](/en/3.0/topics/db/search/)
  - [Managers](/en/3.0/topics/db/managers/)
  - [Performing raw SQL queries](/en/3.0/topics/db/sql/)
  - [Database transactions](/en/3.0/topics/db/transactions/)
  - [Multiple databases](/en/3.0/topics/db/multi-db/)
  - [Tablespaces](/en/3.0/topics/db/tablespaces/)
  - [Database access optimization](/en/3.0/topics/db/optimization/)
  - [Database instrumentation](/en/3.0/topics/db/instrumentation/)
  - [Examples of model relationship API usage](/en/3.0/topics/db/examples/)
- [Handling HTTP requests](/en/3.0/topics/http/)

  - [URL dispatcher](/en/3.0/topics/http/urls/)
  - [Writing views](/en/3.0/topics/http/views/)
  - [View decorators](/en/3.0/topics/http/decorators/)
  - [File Uploads](/en/3.0/topics/http/file-uploads/)
  - [Django shortcut functions](/en/3.0/topics/http/shortcuts/)
  - [Generic views](/en/3.0/topics/http/generic-views/)
  - [Middleware](/en/3.0/topics/http/middleware/)
  - [How to use sessions](/en/3.0/topics/http/sessions/)
- [Working with forms](/en/3.0/topics/forms/)

  - [HTML forms](/en/3.0/topics/forms/#html-forms)
  - [Django’s role in forms](/en/3.0/topics/forms/#django-s-role-in-forms)
  - [Forms in Django](/en/3.0/topics/forms/#forms-in-django)
  - [Building a form](/en/3.0/topics/forms/#building-a-form)
  - [More about Django `Form` classes](/en/3.0/topics/forms/#more-about-django-form-classes)
  - [Working with form templates](/en/3.0/topics/forms/#working-with-form-templates)
  - [Further topics](/en/3.0/topics/forms/#further-topics)
- [Templates](/en/3.0/topics/templates/)

  - [Support for template engines](/en/3.0/topics/templates/#support-for-template-engines)
  - [The Django template language](/en/3.0/topics/templates/#the-django-template-language)
- [Class-based views](/en/3.0/topics/class-based-views/)

  - [Introduction to class-based views](/en/3.0/topics/class-based-views/intro/)
  - [Built-in class-based generic views](/en/3.0/topics/class-based-views/generic-display/)
  - [Form handling with class-based views](/en/3.0/topics/class-based-views/generic-editing/)
  - [Using mixins with class-based views](/en/3.0/topics/class-based-views/mixins/)
  - [Basic examples](/en/3.0/topics/class-based-views/#basic-examples)
  - [Usage in your URLconf](/en/3.0/topics/class-based-views/#usage-in-your-urlconf)
  - [Subclassing generic views](/en/3.0/topics/class-based-views/#subclassing-generic-views)
- [Migrations](/en/3.0/topics/migrations/)

  - [The Commands](/en/3.0/topics/migrations/#the-commands)
  - [Backend Support](/en/3.0/topics/migrations/#backend-support)
  - [Workflow](/en/3.0/topics/migrations/#workflow)
  - [Dependencies](/en/3.0/topics/migrations/#dependencies)
  - [Migration files](/en/3.0/topics/migrations/#migration-files)
  - [Adding migrations to apps](/en/3.0/topics/migrations/#adding-migrations-to-apps)
  - [Reversing migrations](/en/3.0/topics/migrations/#reversing-migrations)
  - [Historical models](/en/3.0/topics/migrations/#historical-models)
  - [Considerations when removing model fields](/en/3.0/topics/migrations/#considerations-when-removing-model-fields)
  - [Data Migrations](/en/3.0/topics/migrations/#data-migrations)
  - [Squashing migrations](/en/3.0/topics/migrations/#squashing-migrations)
  - [Serializing values](/en/3.0/topics/migrations/#serializing-values)
  - [Supporting multiple Django versions](/en/3.0/topics/migrations/#supporting-multiple-django-versions)
- [Managing files](/en/3.0/topics/files/)

  - [Using files in models](/en/3.0/topics/files/#using-files-in-models)
  - [The `File` object](/en/3.0/topics/files/#the-file-object)
  - [File storage](/en/3.0/topics/files/#file-storage)
- [Testing in Django](/en/3.0/topics/testing/)

  - [Writing and running tests](/en/3.0/topics/testing/overview/)
  - [Testing tools](/en/3.0/topics/testing/tools/)
  - [Advanced testing topics](/en/3.0/topics/testing/advanced/)
- [User authentication in Django](/en/3.0/topics/auth/)

  - [Overview](/en/3.0/topics/auth/#overview)
  - [Installation](/en/3.0/topics/auth/#installation)
  - [Usage](/en/3.0/topics/auth/#usage)
- [Django’s cache framework](/en/3.0/topics/cache/)

  - [Setting up the cache](/en/3.0/topics/cache/#setting-up-the-cache)
  - [The per-site cache](/en/3.0/topics/cache/#the-per-site-cache)
  - [The per-view cache](/en/3.0/topics/cache/#the-per-view-cache)
  - [Template fragment caching](/en/3.0/topics/cache/#template-fragment-caching)
  - [The low-level cache API](/en/3.0/topics/cache/#the-low-level-cache-api)
  - [Downstream caches](/en/3.0/topics/cache/#downstream-caches)
  - [Using `Vary` headers](/en/3.0/topics/cache/#using-vary-headers)
  - [Controlling cache: Using other headers](/en/3.0/topics/cache/#controlling-cache-using-other-headers)
  - [Order of `MIDDLEWARE`](/en/3.0/topics/cache/#order-of-middleware)
- [Conditional View Processing](/en/3.0/topics/conditional-view-processing/)

  - [The `condition` decorator](/en/3.0/topics/conditional-view-processing/#the-condition-decorator)
  - [Shortcuts for only computing one value](/en/3.0/topics/conditional-view-processing/#shortcuts-for-only-computing-one-value)
  - [Using the decorators with other HTTP methods](/en/3.0/topics/conditional-view-processing/#using-the-decorators-with-other-http-methods)
  - [Comparison with middleware conditional processing](/en/3.0/topics/conditional-view-processing/#comparison-with-middleware-conditional-processing)
- [Cryptographic signing](/en/3.0/topics/signing/)

  - [Protecting the `SECRET_KEY`](/en/3.0/topics/signing/#protecting-the-secret-key)
  - [Using the low-level API](/en/3.0/topics/signing/#using-the-low-level-api)
- [Sending email](/en/3.0/topics/email/)

  - [Quick example](/en/3.0/topics/email/#quick-example)
  - [`send_mail()`](/en/3.0/topics/email/#send-mail)
  - [`send_mass_mail()`](/en/3.0/topics/email/#send-mass-mail)
  - [`mail_admins()`](/en/3.0/topics/email/#mail-admins)
  - [`mail_managers()`](/en/3.0/topics/email/#mail-managers)
  - [Examples](/en/3.0/topics/email/#examples)
  - [Preventing header injection](/en/3.0/topics/email/#preventing-header-injection)
  - [The `EmailMessage` class](/en/3.0/topics/email/#the-emailmessage-class)
  - [Email backends](/en/3.0/topics/email/#email-backends)
  - [Configuring email for development](/en/3.0/topics/email/#configuring-email-for-development)
- [Internationalization and localization](/en/3.0/topics/i18n/)

  - [Overview](/en/3.0/topics/i18n/#overview)
  - [Definitions](/en/3.0/topics/i18n/#definitions)
- [Logging](/en/3.0/topics/logging/)

  - [A quick logging primer](/en/3.0/topics/logging/#a-quick-logging-primer)
  - [Using logging](/en/3.0/topics/logging/#using-logging)
  - [Configuring logging](/en/3.0/topics/logging/#configuring-logging)
  - [Django’s logging extensions](/en/3.0/topics/logging/#django-s-logging-extensions)
  - [Django’s default logging configuration](/en/3.0/topics/logging/#django-s-default-logging-configuration)
- [Pagination](/en/3.0/topics/pagination/)

  - [The `Paginator` class](/en/3.0/topics/pagination/#the-paginator-class)
  - [Example](/en/3.0/topics/pagination/#example)
  - [Paginating a `ListView`](/en/3.0/topics/pagination/#paginating-a-listview)
  - [Using `Paginator` in a view function](/en/3.0/topics/pagination/#using-paginator-in-a-view-function)
- [Security in Django](/en/3.0/topics/security/)

  - [Cross site scripting (XSS) protection](/en/3.0/topics/security/#cross-site-scripting-xss-protection)
  - [Cross site request forgery (CSRF) protection](/en/3.0/topics/security/#cross-site-request-forgery-csrf-protection)
  - [SQL injection protection](/en/3.0/topics/security/#sql-injection-protection)
  - [Clickjacking protection](/en/3.0/topics/security/#clickjacking-protection)
  - [SSL/HTTPS](/en/3.0/topics/security/#ssl-https)
  - [Host header validation](/en/3.0/topics/security/#host-header-validation)
  - [Referrer policy](/en/3.0/topics/security/#referrer-policy)
  - [Session security](/en/3.0/topics/security/#session-security)
  - [User-uploaded content](/en/3.0/topics/security/#user-uploaded-content)
  - [Additional security topics](/en/3.0/topics/security/#additional-security-topics)
- [Performance and optimization](/en/3.0/topics/performance/)

  - [Introduction](/en/3.0/topics/performance/#introduction)
  - [General approaches](/en/3.0/topics/performance/#general-approaches)
  - [Caching](/en/3.0/topics/performance/#caching)
  - [Understanding laziness](/en/3.0/topics/performance/#understanding-laziness)
  - [Databases](/en/3.0/topics/performance/#databases)
  - [HTTP performance](/en/3.0/topics/performance/#http-performance)
  - [Template performance](/en/3.0/topics/performance/#template-performance)
  - [Using different versions of available software](/en/3.0/topics/performance/#using-different-versions-of-available-software)
- [Serializing Django objects](/en/3.0/topics/serialization/)

  - [Serializing data](/en/3.0/topics/serialization/#serializing-data)
  - [Deserializing data](/en/3.0/topics/serialization/#deserializing-data)
  - [Serialization formats](/en/3.0/topics/serialization/#serialization-formats)
  - [Natural keys](/en/3.0/topics/serialization/#natural-keys)
- [Django settings](/en/3.0/topics/settings/)

  - [The basics](/en/3.0/topics/settings/#the-basics)
  - [Designating the settings](/en/3.0/topics/settings/#designating-the-settings)
  - [Default settings](/en/3.0/topics/settings/#default-settings)
  - [Using settings in Python code](/en/3.0/topics/settings/#using-settings-in-python-code)
  - [Altering settings at runtime](/en/3.0/topics/settings/#altering-settings-at-runtime)
  - [Security](/en/3.0/topics/settings/#security)
  - [Available settings](/en/3.0/topics/settings/#available-settings)
  - [Creating your own settings](/en/3.0/topics/settings/#creating-your-own-settings)
  - [Using settings without setting `DJANGO_SETTINGS_MODULE`](/en/3.0/topics/settings/#using-settings-without-setting-django-settings-module)
- [Signals](/en/3.0/topics/signals/)

  - [Listening to signals](/en/3.0/topics/signals/#listening-to-signals)
  - [Defining and sending signals](/en/3.0/topics/signals/#defining-and-sending-signals)
  - [Disconnecting signals](/en/3.0/topics/signals/#disconnecting-signals)
- [System check framework](/en/3.0/topics/checks/)

  - [Writing your own checks](/en/3.0/topics/checks/#writing-your-own-checks)
- [External packages](/en/3.0/topics/external-packages/)

  - [Localflavor](/en/3.0/topics/external-packages/#localflavor)
  - [Comments](/en/3.0/topics/external-packages/#comments)
  - [Formtools](/en/3.0/topics/external-packages/#formtools)
- [Asynchronous support](/en/3.0/topics/async/)

  - [Async-safety](/en/3.0/topics/async/#async-safety)
  - [Async adapter functions](/en/3.0/topics/async/#async-adapter-functions)
