Aplicații web în Python
2020
Curs introductiv de web development folosind Python și Django
Despre ce discutăm azi
Django authentication
Django.contrib.auth
Modelul User
Superuser si staff
AnonymousUser
- este o clasă ce implementează interfața User, cu diferențele:
Interacționăm cu această clasă în momentul în care avem un utilizator neautentificat.
Register
- crearea unui nou utilizator
- este folosită metoda create_user a user-ului
- utilizăm UserCreationForm
user = User.objects.create_user(username='user1',
password='user1password')
Login
Login
from django.contrib.auth import authenticate, login
user = authenticate(username=username, password=password)� if user is not None:� login(request, user)
Log out
Log out
from django.contrib.auth import logout
logout(request)
Decoratori și Mixins
Decoratori
Format: @nume_decorator
Mixin
Exemplu Mixin
from django.http import JsonResponse
class JSONResponseMixin:
def render_to_json_response(self, context, **response_kwargs):
return JsonResponse(self.get_data(context), **response_kwargs)
class JSONView(JSONResponseMixin, TemplateView):
def render_to_response(self, context, **response_kwargs):
return self.render_to_json_response(context, **response_kwargs)
Login Required
Login Required
Function based view:
from django.contrib.auth.decorators import login_required
@login_required
def function_based_view(request):
pass
Class based view:
from django.contrib.auth.mixins import LoginRequiredMixin
class ClassBasedView(LoginRequiredMixin, View):
pass
În template
{% if user.is_authenticated %}
Show something
{% else %}
Show something else
{% endif %}
Ce a apărut nou în aplicație