Django Basics Cheat Sheet

1. What is Django?

  • Django is a Python-based web framework that follows the Model-View-Template (MVT) architecture.
  • Why Use Django?
    • Fast development
    • Secure by default
    • Scalable and maintainable

2. Installation

pip install django  

Verify Installation:

django-admin --version  

3. Create a Django Project

django-admin startproject projectname  
cd projectname  
python manage.py runserver  
  • Access at: http://127.0.0.1:8000/

4. Project Structure

projectname/
│
├── manage.py                # Command-line utility  
├── projectname/             # Project directory  
│   ├── __init__.py          
│   ├── asgi.py              # ASGI config  
│   ├── settings.py          # Project settings  
│   ├── urls.py              # URL routing  
│   └── wsgi.py              # WSGI config  
└── db.sqlite3               # Default SQLite database  

5. Create an App

python manage.py startapp appname  

Register the App in settings.py:

INSTALLED_APPS = [
    'appname',
]

6. Models (Database Design)

Define Models (in models.py):

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

Apply Migrations:

python manage.py makemigrations  
python manage.py migrate  

7. Django Admin

python manage.py createsuperuser  
python manage.py runserver  
  • Access Admin Panel: http://127.0.0.1:8000/admin/

Register Model for Admin (in admin.py):

from .models import Post
admin.site.register(Post)

8. Views (Business Logic)

Define Views (in views.py):

from django.shortcuts import render

def home(request):
    return render(request, 'home.html', {'name': 'Django'})

9. URLs (Routing)

Map URLs (in urls.py):

from django.urls import path
from appname import views

urlpatterns = [
    path('', views.home, name='home'),
]

10. Templates (Frontend Design)

Create HTML File (in templates/home.html):

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>Welcome to {{ name }}!</h1>
</body>
</html>

11. Static Files (CSS, JS, Images)

Configure in settings.py:

STATIC_URL = '/static/'

Usage in Template:

{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">

12. Forms (User Input)

Create Form (in forms.py):

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

13. Query Data (ORM Queries)

# Get all objects
Post.objects.all()

# Filter objects
Post.objects.filter(title__contains='Django')

# Get single object
Post.objects.get(id=1)

# Create new entry
Post.objects.create(title='New Post', content='Hello World!')

# Update entry
post = Post.objects.get(id=1)
post.title = 'Updated Title'
post.save()

# Delete entry
post.delete()

14. Middleware

Custom Middleware (in middleware.py):

from django.utils.timezone import now

class TimingMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        print(f"Request at {now()}")
        response = self.get_response(request)
        return response

Add to settings.py:

MIDDLEWARE = [
    'appname.middleware.TimingMiddleware',
]

15. User Authentication

Login View (in views.py):

from django.contrib.auth import authenticate, login

def user_login(request):
    user = authenticate(request, username='john', password='secret')
    if user:
        login(request, user)

16. Deployment

python manage.py collectstatic  
  • Use Gunicorn and Nginx for production deployment.

17. Common Django Commands

python manage.py runserver          # Start server  
python manage.py makemigrations     # Create migration files  
python manage.py migrate            # Apply migrations  
python manage.py createsuperuser    # Create admin user  
python manage.py collectstatic      # Collect static files  
python manage.py shell              # Django shell  

18. Useful Shortcuts

  • Django Shell:
    python manage.py shell
    
  • Check for Errors:
    python manage.py check
    

Example: Simple Blog App

# models.py
class Blog(models.Model):
    title = models.CharField(max_length=100)
    body = models.TextField()

# views.py
def blog_list(request):
    blogs = Blog.objects.all()
    return render(request, 'blog_list.html', {'blogs': blogs})

# urls.py
path('blogs/', views.blog_list, name='blog_list')

Related posts

Visual Basic .NET (VB.NET) Basics Cheat Sheet

C# Basics Cheat Sheet

The Sun Basics Cheat Sheet