Configurando el proyecto

Para iniciar un proyecto con Django REST Framework y configurar el manejo de autenticación con JWT (JSON Web Tokens), sigue estos pasos detalladamente. Asegúrate de tener Python instalado en tu sistema para ejecutar estos comandos.

Primero, crea un nuevo directorio para tu proyecto y navega a él en la terminal:

mkdir djangorestframework-jwt-simple
cd djangorestframework-jwt-simple

Crea un entorno virtual para manejar las dependencias de tu proyecto de manera aislada. Esto evitará conflictos entre las bibliotecas de diferentes proyectos. Activa el entorno virtual con los siguientes comandos:

python -m venv venv

En Windows, activa el entorno virtual con:

venv\Scripts\activate

En macOS y Linux, usa:

source venv/bin/activate

Con el entorno virtual activado, instala Django, que es el framework que utilizarás para construir tu aplicación web:

pip install django

Una vez instalado Django, puedes proceder a crear tu proyecto. Este comando creará un nuevo proyecto de Django llamado 'server' en el directorio actual:

django-admin startproject server .

Este comando no solo crea el proyecto sino que también organiza la estructura inicial de tu aplicación, incluyendo la configuración básica necesaria para empezar a desarrollar.

Con estos pasos, has configurado el entorno básico de tu proyecto Django REST Framework. El siguiente paso sería configurar Django para utilizar JWT para la autenticación, pero eso requerirá instalar paquetes adicionales y configurar el proyecto adecuadamente, lo cual se tratará en las siguientes secciones del artículo.

Ejecutando el Proyecto

python manage.py migrate
python manage.py runserver

Django REST Framework

pip install djangorestframework
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'rest_framework.authtoken',
]

Creando rutas en DRF

en server/views.py

from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(['POST'])
def login(request):
    return Response({})

@api_view(['POST'])
def signup(request):
    return Response({})

@api_view(['POST'])
def profile(request):
    return Response({})

Luego en server/urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path('login', views.login),
    re_path('signup', views.signup),
    re_path('profile', views.profile), 
]

Desde aqui puedes hacer peticiones usando tu Cliente REST favorito

Creando serializers

en server/serializers

from rest_framework import serializers
from django.contrib.auth.models import User

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ['id', 'username', 'email']

Git

.gitignore

venv/
db.sqlite3
git init