Django documentation¶
Everything you need to know about Django.
First steps¶
Are you new to Django or to programming? This is the place to start!
- From scratch:Overview |Installation
- Tutorial:Part 1: Requests and responses |Part 2: Models and the admin site |Part 3: Views and templates |Part 4: Forms and generic views |Part 5: Testing |Part 6: Static files |Part 7: Customizing the admin site
- Advanced Tutorials:How to write reusable apps |Writing your first patch for Django
Getting help¶
Having trouble? We’d like to help!
- Try theFAQ – it’s got answers to many common questions.
- Looking for specific information? Try theIndex,Module Index orthedetailed table of contents.
- Not found anything? SeeFAQ: Getting Help for information on getting supportand asking questions to the community.
- Report bugs with Django in ourticket tracker.
How the documentation is organized¶
Django has a lot of documentation. A high-level overview of how it’s organizedwill help you know where to look for certain things:
- Tutorials take you by the hand through a series ofsteps to create a Web application. Start here if you’re new to Django or Webapplication development. Also look at the “First steps”.
- Topic guides discuss key topics and concepts at afairly high level and provide useful background information and explanation.
- Reference guides contain technical reference for APIs andother aspects of Django’s machinery. They describe how it works and how touse it but assume that you have a basic understanding of key concepts.
- How-to guides are recipes. They guide you through thesteps involved in addressing key problems and use-cases. They are moreadvanced than tutorials and assume some knowledge of how Django works.
The model layer¶
Django provides an abstraction layer (the “models”) for structuring andmanipulating the data of your Web application. Learn more about it below:
- Models:Introduction to models |Field types |Indexes |Meta options |Model class
- QuerySets:Making queries |QuerySet method reference |Lookup expressions
- Model instances:Instance methods |Accessing related objects
- Migrations:Introduction to Migrations |Operations reference |SchemaEditor |Writing migrations
- Advanced:Managers |Raw SQL |Transactions |Aggregation |Search |Custom fields |Multiple databases |Custom lookups |Query Expressions |Conditional Expressions |Database Functions
- Other:Supported databases |Legacy databases |Providing initial data |Optimize database access |PostgreSQL specific features
The view layer¶
Django has the concept of “views” to encapsulate the logic responsible forprocessing a user’s request and for returning the response. Find all you needto know about views via the links below:
- The basics:URLconfs |View functions |Shortcuts |Decorators |Asynchronous Support
- Reference:Built-in Views |Request/response objects |TemplateResponse objects
- File uploads:Overview |File objects |Storage API |Managing files |Custom storage
- Class-based views:Overview |Built-in display views |Built-in editing views |Using mixins |API reference |Flattened index
- Advanced:Generating CSV |Generating PDF
- Middleware:Overview |Built-in middleware classes
The template layer¶
The template layer provides a designer-friendly syntax for rendering theinformation to be presented to the user. Learn how this syntax can be used bydesigners and how it can be extended by programmers:
- The basics:Overview
- For designers:Language overview |Built-in tags and filters |Humanization
- For programmers:Template API |Custom tags and filters |Custom template backend
Forms¶
Django provides a rich framework to facilitate the creation of forms and themanipulation of form data.
- The basics:Overview |Form API |Built-in fields |Built-in widgets
- Advanced:Forms for models |Integrating media |Formsets |Customizing validation
The development process¶
Learn about the various components and tools to help you in the development andtesting of Django applications:
- Settings:Overview |Full list of settings
- Applications:Overview
- Exceptions:Overview
- django-admin and manage.py:Overview |Adding custom commands
- Testing:Introduction |Writing and running tests |Included testing tools |Advanced topics
- Deployment:Overview |WSGI servers |ASGI servers |Deploying static files |Tracking code errors by email |Deployment checklist
The admin¶
Find all you need to know about the automated admin interface, one of Django’smost popular features:
Security¶
Security is a topic of paramount importance in the development of Webapplications and Django provides multiple protection tools and mechanisms:
Internationalization and localization¶
Django offers a robust internationalization and localization framework toassist you in the development of applications for multiple languages and worldregions:
Performance and optimization¶
There are a variety of techniques and tools that can help get your code runningmore efficiently - faster, and using fewer system resources.
Geographic framework¶
GeoDjango intends to be a world-class geographicWeb framework. Its goal is to make it as easy as possible to build GIS Webapplications and harness the power of spatially enabled data.
Common Web application tools¶
Django offers multiple tools commonly needed in the development of Webapplications:
Other core functionalities¶
Learn about some other core functionalities of the Django framework:
The Django open-source project¶
Learn about the development process for the Django project itself and about howyou can contribute:
- Community:How to get involved |The release process |Team organization |The Django source code repository |Security policies |Mailing lists
- Design philosophies:Overview
- Documentation:About this documentation
- Third-party distributions:Overview
- Django over time:API stability |Release notes and upgrading instructions |Deprecation Timeline