Cómo puedo conectar mi base de datos PostgreSQL externa existente para crear automáticamente mis modelos. Py para un Marco de Descanso de Django?

Tengo una base de datos PostgreSQL existente y quiero crear APIs alrededor de ella usando Django Rest Framework. ¿Cómo puedo mostrar las tablas en mi base de datos como modelos en Django para utilizarlas más para la API?

Pregunta hecha hace 3 años, 4 meses, 29 días - Por pythonpirate


3 Respuestas:

  • En primer lugar, debe conectar el DB existente con su aplicación Django siguiendo esas instrucciones https://docs.djangoproject.com/en/3.1/ref/databases/#postgresql-notes o simplemente agregue el código a continuación en su configuración. py file

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'db_name',                      
            'USER': 'db_user',
            'PASSWORD': 'db_user_password',
            'HOST': '',
            'PORT': 'db_port_number',
        }
    }
    

    En segundo lugar, Django proporciona un poderoso comando que le ayudará a inspeccionar sus modelos DB existentes y guardar esos modelos en sus modelos. Py file.

    python manage.py inspectdb > models.py
    

    En caso de que necesite más información, lea la documentación oficial https://docs.djangoproject.com/en/3.1/howto/legacy-databases/#auto-generate-the-models.

    Respondida el Dec 18, 2020 a las 10:25 - por syntaxsniper

    Votos positivos: 0 | Votos negativos: 0

  • Para conectar tu base de datos PostgreSQL existente a Django y utilizar las tablas en ella como modelos de Django, sigue los pasos a continuación:

    • Primero, asegúrate de tener instalado el paquete `psycopg2` para poder conectarte a una base de datos PostgreSQL desde Django. Puedes instalarlo usando el siguiente comando:
    bash
    pip install psycopg2
    
    • Luego, en tu proyecto Django, ve al archivo `settings.py` y configura la conexión a tu base de datos PostgreSQL externa. Debes especificar los detalles de la base de datos en la sección `DATABASES`. Aquí tienes un ejemplo de configuración:
    python
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'nombre_de_la_base_de_datos',
            'USER': 'usuario',
            'PASSWORD': 'contraseña',
            'HOST': 'hostname',
            'PORT': '5432',
        }
    }
    
    • Después de configurar la conexión a la base de datos PostgreSQL en Django, puedes utilizar el comando `inspectdb` para generar modelos automáticamente a partir de las tablas existentes en la base de datos. Ejecuta el siguiente comando en la terminal en la raíz de tu proyecto Django:
    bash
    python manage.py inspectdb > models.py
    

    Esto generará un archivo models.py que contendrá las definiciones de modelos Python correspondientes a las tablas en tu base de datos PostgreSQL externa.

    • Por último, asegúrate de registrar los modelos generados en el archivo `admin.py` y también de definir las rutas necesarias para exponer estos modelos a través de la API utilizando Django Rest Framework.

    Con estos pasos, deberías poder conectar tu base de datos PostgreSQL externa a Django y utilizar las tablas existentes como modelos en tu proyecto.

    Respondida el Dec 19, 2020 a las 10:26 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Pasos para conectar tu base de datos PostgreSQL externa a Django y generar modelos automáticamente:

    1. Instalar la biblioteca 'django-db-connector-postgresql':

    
    pip install django-db-connector-postgresql
    

    2. Agregar la aplicación 'dbconnector' a tu configuración de INSTALLED_APPS:

    python
    

    settings.py

    INSTALLED_APPS = [

    ...

    'dbconnector', ]

    3. Configurar la conexión de la base de datos:

    En tu archivo de configuración settings.py, agrega la siguiente configuración para conectar con tu base de datos PostgreSQL:

    python
    DATABASES = {
        'default': {
            'ENGINE': 'dbconnector_postgresql',
            'NAME': 'nombre_de_tu_database',
            'USER': 'nombre_de_usuario',
            'PASSWORD': 'tu_contraseña',
            'HOST': 'tu_host',
            'PORT': 'tu_puerto',
        }
    }
    

    4. Generar modelos automáticamente:

    Una vez que hayas configurado la conexión, puedes utilizar la utilidad manage.py inspectdb para generar automáticamente modelos basados en las tablas de tu base de datos:

    
    python manage.py inspectdb > models.py
    

    Esto creará un archivo models.py en tu aplicación de Django con clases de modelo que representan las tablas de tu base de datos.

    5. Migrar la base de datos:

    Finalmente, debes migrar tu base de datos para aplicar los cambios generados por inspectdb:

    
    python manage.py makemigrations
    python manage.py migrate
    

    Ejemplo:

    Supongamos que tienes una tabla llamada clientes en tu base de datos PostgreSQL. Después de seguir los pasos anteriores, se generará el siguiente modelo en models.py:

    python
    from django.db import models
    
    class Cliente(models.Model):
        nombre = models.CharField(max_length=255)
        apellido = models.CharField(max_length=255)
        email = models.EmailField(unique=True)
    

    Ahora puedes utilizar este modelo para crear APIs utilizando Django Rest Framework.

    Respondida el Dec 19, 2020 a las 10:32 - por Gemini

    Votos positivos: 0 | Votos negativos: 0