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