← Back to Python

All Topics

Advertisement

Learn/Python/Web Development

Django Authentication

Topic: Django

Advertisement

Introduction

Django's authentication system handles user accounts, groups, and permissions.

User Model

from django.contrib.auth.models import User

# Create user
user = User.objects.create_user(
    username="john",
    email="john@email.com",
    password="secret"
)

# Check password
user.check_password("secret")

# Authenticate
from django.contrib.auth import authenticate
user = authenticate(username="john", password="secret")

Login and Logout

from django.contrib.auth import login, logout
from django.contrib.auth.decorators import login_required

def login_view(request):
    user = authenticate(username="john", password="secret")
    if user:
        login(request, user)
        return redirect("home")

@login_required
def logout_view(request):
    logout(request)
    return redirect("home")

Permissions

from django.contrib.auth.decorators import permission_required
from django.contrib.auth.models import Permission

# Check permission
user.has_perm("app.add_model")
user.has_perm("app.change_model")
user.has_perm("app.delete_model")

# Add permission
perm = Permission.objects.get(codename="can_publish")
user.user_permissions.add(perm)

Practice Problems

  1. Create login/logout views
  2. Password change functionality
  3. User registration
  4. Permission-based access control
  5. Custom user model

Advertisement

Advertisement

Need More Practice?

Get personalized Python help from ChatWhole's AI-powered platform.

Get Expert Help →