Proyecto backend desarrollado con Django 4.2 y Django REST Framework, configurado con PostgreSQL y gestión de dependencias mediante pip-tools.
# Clonar el repositorio
git clone <repository-url>
cd ai-software-development
# Crear entorno virtual
python3 -m venv .env
source .env/bin/activate # En macOS/Linux
# .env\Scripts\activate # En Windows
# Instalar pip-tools
pip install pip-tools
# Compilar e instalar dependencias
pip-compile requirements.in
pip-sync requirements.txtCopia el archivo de ejemplo y configura tus variables:
cp env.example .envEdita el archivo .env con tus configuraciones:
# Database Configuration
DB_NAME=django_db
DB_USER=django_user
DB_PASSWORD=django_password
DB_HOST=localhost
DB_PORT=5432
# Django Configuration
DEBUG=True
SECRET_KEY=tu-clave-secreta-aqui
ALLOWED_HOSTS=localhost,127.0.0.1# Levantar contenedor de PostgreSQL
docker-compose up -d
# Verificar que está funcionando
docker-compose ps# Activar entorno virtual
source .env/bin/activate
# Verificar configuración
python3 manage.py check
# Ejecutar migraciones
python3 manage.py migrate
# Crear superusuario (opcional)
python3 manage.py createsuperuser
# Levantar servidor de desarrollo
python3 manage.py runserverai-software-development/
├── .env/ # Entorno virtual (ignorado en git)
├── config/ # Configuración principal de Django
│ ├── __init__.py
│ ├── settings.py # Configuraciones del proyecto
│ ├── urls.py # URLs principales
│ ├── wsgi.py
│ └── asgi.py
├── core/ # App principal del proyecto
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py # Modelos de datos
│ ├── views.py # Vistas/ViewSets
│ ├── urls.py # URLs de la app
│ └── tests.py
├── docker-compose.yml # PostgreSQL container
├── env.example # Ejemplo de variables de entorno
├── requirements.in # Dependencias directas
├── requirements.txt # Dependencias compiladas (generado)
├── requirements-dev.in # Dependencias de desarrollo
├── manage.py # Comando principal de Django
└── README.md # Este archivo
# 1. Agregar al requirements.in
echo "nueva-libreria>=1.0" >> requirements.in
# 2. Compilar dependencias
pip-compile requirements.in
# 3. Sincronizar entorno
pip-sync requirements.txt# Actualizar todas las dependencias
pip-compile --upgrade requirements.in
pip-sync requirements.txt
# Actualizar solo una dependencia específica
pip-compile --upgrade-package django requirements.in
pip-sync requirements.txt# Compilar dependencias de desarrollo
pip-compile requirements-dev.in
# Instalar dependencias de desarrollo
pip-sync requirements-dev.txt# Levantar PostgreSQL
docker-compose up -d
# Ver logs de PostgreSQL
docker-compose logs postgres
# Parar PostgreSQL
docker-compose down
# Parar y eliminar volúmenes (⚠️ elimina datos)
docker-compose down -v# Verificar configuración
python3 manage.py check
# Crear migraciones
python3 manage.py makemigrations
# Aplicar migraciones
python3 manage.py migrate
# Crear superusuario
python3 manage.py createsuperuser
# Abrir shell de Django
python3 manage.py shell
# Ejecutar tests
python3 manage.py test
# Recopilar archivos estáticos (producción)
python3 manage.py collectstatic- ✅ Entorno virtual creado y activado
- ✅ Dependencias instaladas con pip-sync
- ✅ PostgreSQL funcionando (docker-compose up -d)
- ✅ Variables de entorno configuradas (.env)
- ✅ Migraciones aplicadas (python3 manage.py migrate)
- ✅ Servidor funcionando (python3 manage.py runserver)
- ✅ Admin accesible en http://127.0.0.1:8000/admin/
- ✅ API base accesible en http://127.0.0.1:8000/api/
- Crear modelos en
core/models.py - Crear serializers en
core/serializers.py - Crear ViewSets en
core/views.py - Registrar URLs en
core/urls.py - Agregar tests en
core/tests.py
- Admin: http://127.0.0.1:8000/admin/
- API Base: http://127.0.0.1:8000/api/
- DRF Browsable API: Disponible en endpoints de API
- Django 4.2: Framework web principal
- Django REST Framework 3.16: API REST
- PostgreSQL 15: Base de datos
- pip-tools: Gestión de dependencias
- Docker Compose: Contenedor de PostgreSQL
- python-decouple: Variables de entorno