Thuta Learning
ရှာဖွေရန်
IntermediateProgrammingbeginner

Django Authentication

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

🔐 Lesson 55: Django Authentication (Login, Logout, User Management)

1. Django Authentication ဆိုတာဘာလဲ?

မြန်မာ → Django authentication system က user identity ကို စစ်ဆေးပြီး access control ပေးတဲ့ built-in system ဖြစ်တယ်။ Login, logout, password hashing, session management စတာတွေကို Django က auto handle လုပ်ပေးတယ်။

English → Django authentication handles user identity, login/logout, password hashing, and session management.

2. Why Use Django Authentication?

  • User management ကို built-in support ပေးတယ်
  • Passwords ကို hash လုပ်ပြီး သိမ်းပေးတယ် (secure)
  • Session & cookie management ပါပြီးသား
  • Admin panel နဲ့ ချိတ်ဆက်လို့ရတယ်

3. အကျဉ်းချုပ်

✅ Django authentication = built-in user management system

✅ Register → UserCreationForm

✅ Login → authenticate() + login()

✅ Logout → logout()

✅ Restrict access → @login_required

python
# ===== 1. User Registration =====
print("===== Registration Form =====")
print("# forms.py")
print("from django import forms")
print("from django.contrib.auth.forms import UserCreationForm")
print("")
print("class RegisterForm(UserCreationForm):")
print("    email = forms.EmailField()")
print("")
print("    class Meta:")
print("        model = User")
print("        fields = ['username', 'email', 'password1', 'password2']")
print("")
print("# views.py")
print("def register(request):")
print("    if request.method == 'POST':")
print("        form = RegisterForm(request.POST)")
print("        if form.is_valid():")
print("            form.save()")
print("            return redirect('login')")
print("    else:")
print("        form = RegisterForm()")
print("    return render(request, 'register.html', {'form': form})")

# ===== 2. User Login =====
print(f"\n===== Login View =====")
print("from django.contrib.auth import authenticate, login")
print("")
print("def user_login(request):")
print("    if request.method == 'POST':")
print("        username = request.POST['username']")
print("        password = request.POST['password']")
print("        user = authenticate(request, username=username, password=password)")
print("        if user is not None:")
print("            login(request, user)")
print("            return redirect('home')")
print("    return render(request, 'login.html')")

# ===== 3. User Logout =====
print(f"\n===== Logout View =====")
print("from django.contrib.auth import logout")
print("")
print("def user_logout(request):")
print("    logout(request)")
print("    return redirect('login')")

# ===== 4. Restricting Access =====
print(f"\n===== Login Required =====")
print("from django.contrib.auth.decorators import login_required")
print("")
print("@login_required")
print("def dashboard(request):")
print("    return render(request, 'dashboard.html')")
print("")
print("# If user not logged in, redirects to login page")

# ===== 5. Login Template =====
print(f"\n===== login.html =====")
print("<!DOCTYPE html>")
print("<html>")
print("<body>")
print("    <form method='post'>")
print("        {% csrf_token %}")
print("        <input type='text' name='username' placeholder='Username'><br>")
print("        <input type='password' name='password' placeholder='Password'><br>")
print("        <button type='submit'>Login</button>")
print("    </form>")
print("</body>")
print("</html>")

# ===== 6. Real-World Use Cases =====
print(f"\n===== Use Cases =====")
print("✅ Blog → Only logged-in users can create posts")
print("✅ E-commerce → User accounts for orders, payments")
print("✅ Social media → Profile, friends, messages")
print("✅ Company apps → Employee login, role-based access")
You should see
===== Registration Form ===== # forms.py from django import forms from django.contrib.auth.forms import UserCreationForm class RegisterForm(UserCreationForm): email = forms.EmailField() class Meta: model = User fields = ['username', 'email', 'password1', 'password2'] # views.py def register(request): if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid(): form.save() return redirect('login') else: form = RegisterForm() return render(request, 'register.html', {'form': form}) ===== Login View ===== from django.contrib.auth import authenticate, login def user_login(request): if request.method == 'POST': username = request.POST['username'] password = request.POST['password'] user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('home') return render(request, 'login.html') ===== Logout View ===== from django.contrib.auth import logout def user_logout(request): logout(request) return redirect('login') ===== Login Required ===== from django.contrib.auth.decorators import login_required @login_required def dashboard(request): return render(request, 'dashboard.html') # If user not logged in, redirects to login page ===== login.html ===== {% csrf_token %} Login ===== Use Cases ===== ✅ Blog → Only logged-in users can create posts ✅ E-commerce → User accounts for orders, payments ✅ Social media → Profile, friends, messages ✅ Company apps → Employee login, role-based access
Django Authentication | Thuta Learning