Foros del Web » Programando para Internet » Python »

[Django]Usar múltiples BD y crearlos con los modelos

Estas en el tema de [Django]Usar múltiples BD y crearlos con los modelos en el foro de Python en Foros del Web. Buenas, estoy empezando a trabajar con Django (antes puro PHP). Quiero hacer un sistema de ventas de pasajes de bus, donde la empresaX, al hacer ...
  #1 (permalink)  
Antiguo 05/08/2015, 19:05
 
Fecha de Ingreso: agosto-2015
Mensajes: 4
Antigüedad: 9 años, 3 meses
Puntos: 0
[Django]Usar múltiples BD y crearlos con los modelos

Buenas, estoy empezando a trabajar con Django (antes puro PHP).
Quiero hacer un sistema de ventas de pasajes de bus, donde la empresaX, al hacer login, se auto-dirija a www.xxxx.cl/empresax, pero que tenga su propia base de datos (para hacer un manejo mas sencillo de las BD), en PHP lo sabría hacer de forma muy sencilla, pero no se como implementarlo en Django, estuve leyendo (con el traductor de google), que django soporta varias bases de datos, pero al momento de crear la base de datos me sale un error de sintaxis, esta es la configuración

Código:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'prueba': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'prueba.sqlite3'),
    }
}
y en en el models.py de la app de prueba tengo :

Código:
from django.db import models
from django.db import connections
cursor = connections['prueba'].cursor()

# Create your models here.
class Ruta(models.Model):
	origen = models.CharField(max_length=140)
	destino = models.CharField(max_length=140)
	via = models.CharField(max_length=140)
pero al momento de hacer syncbd e insertar rutas por el shell, la base de datos "prueba" queda en 0 bit, que estoy haciendo mal???

saludos, gracias
  #2 (permalink)  
Antiguo 06/08/2015, 11:23
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: [Django]Usar múltiples BD y crearlos con los modelos

1. Checa que tu app esta en INSTALLED_APPS
2. Haz el syncdb con la db prueba ./manage.py syncdb --datase=prueba
3. Inserta los datos en tu base de datos
Código Python:
Ver original
  1. ruta = Ruta(origen='origen', destino='destino', via='via')
  2. ruta.save(using='prueba')

Para mas información: https://docs.djangoproject.com/en/1....s/db/multi-db/
  #3 (permalink)  
Antiguo 06/08/2015, 19:09
 
Fecha de Ingreso: agosto-2015
Mensajes: 4
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: [Django]Usar múltiples BD y crearlos con los modelos

agradecido, ahora si puedo crear bien las bases de datos probe creando otra "app" y funciono bien, ahora tengo una duda, los usuarios creados se crean en la base de datos "default" o debería crear una "user"??

Disculpa si en el enlace sale la respuesta, pero mi ingles es pésimo, y no le entiendo al traductor de google XD


saludosss
  #4 (permalink)  
Antiguo 06/08/2015, 20:17
 
Fecha de Ingreso: agosto-2015
Mensajes: 4
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: [Django]Usar múltiples BD y crearlos con los modelos

holas me apareció el siguiente error

Código:
OperationalError at /adminplus/prueba/conductor/
no such table: prueba_conductor
Request Method:	GET
Request URL:	http://127.0.0.1:8000/adminplus/prueba/conductor/
Django Version:	1.8.3
Exception Type:	OperationalError
Exception Value:	
no such table: prueba_conductor
Exception Location:	C:\Python34\lib\site-packages\django-1.8.3-py3.4.egg\django\db\backends\sqlite3\base.py in execute, line 318
Python Executable:	C:\Python34\python.exe
Python Version:	3.4.3
mi admin.py en "prueba"
Código:
from django.contrib import admin
from prueba.models import *
# Register your models here.
admin.site.register(Ruta)
admin.site.register(Conductor)
mi models.py de prueba
Código:
from django.db import models
from django.db import connections
cursor = connections['prueba'].cursor()

# Create your models here.
class Ruta(models.Model):
	origen = models.CharField(max_length=140)
	destino = models.CharField(max_length=140)
	via = models.CharField(max_length=140)
	
class Conductor(models.Model):
	nro_licencia = models.CharField(max_length=140)
	nombre = models.CharField(max_length=140)
	apellido_pat = models.CharField(max_length=140)
	apellido_mat = models.CharField(max_length=140)
la base de datos:


el admin

rutas funciona bn en las 2 bases de datos :(

lo solucione, pero haciendo un python manage.py syndb , me salta una duda, deberé hacer esto con cada modelo que agregue a las aplicaciones?? perderé algún dato al hacer esto???

saludos
  #5 (permalink)  
Antiguo 08/08/2015, 13:42
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: [Django]Usar múltiples BD y crearlos con los modelos

Si, lo ideal sera que generes no solo una db, si no toda la instancia del django por empresa que use el producto.

PHP es muy diferente a django y en general al resto de la web moderna.
  #6 (permalink)  
Antiguo 08/08/2015, 17:25
 
Fecha de Ingreso: agosto-2015
Mensajes: 4
Antigüedad: 9 años, 3 meses
Puntos: 0
Respuesta: [Django]Usar múltiples BD y crearlos con los modelos

Cita:
Iniciado por razpeitia Ver Mensaje
Si, lo ideal sera que generes no solo una db, si no toda la instancia del django por empresa que use el producto.

PHP es muy diferente a django y en general al resto de la web moderna.
Lo necesito de la forma en que lo planteo, ya que a mi punto de vista, si un cliente deja de usar el servicio, es cosa de borrar su base de datos y no tener registros basura en una sola y ademas, en resumen, es para poder llevar un mejor orden de los datos de los clientes


saludos

Etiquetas: bd, django, modelos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:25.