Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-12-2010, 08:51   #1
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
[Django] Dubbi su l'utilizzo multidatabase

Ciao ragazzi,

sto valutando l'ipotesi di utilizzare django per un progetto abbastanza grande che devo sviluppare, per ora mi sono letto parecchia documentazione e mi sembra un ottimo framework, peró ho solo un dubbio, e vorrei togliermelo prima di mettermi seriamente a progettare/programmare il sito.

La piattaforma che devo sviluppare è multidominio e si adatta in base al dominio di accesso, e ogni dominio ha i suoi dati.

Pensavo di fare cosi: fare un database, dove mettere i domini in una tabella, nella stessa tabella mettere user, password, host e tipo di database, del relativo database del sito, quindi fare una prima query per vedere quale base di dati deve utilizzare la piattaforma e poi.. connettermi al database "effettivo"

Quindi ricapitolando.
L'utente mette l'indirizzo nel browser, l'utente viene reindirizzato sulla nostra piattaforma, da li come è entrato il sistema vede da che dominio proviene, fa una query al db ed estrae i dati di connessione per il database effettivo, si connette e disegna il sito con i dati del dominio selezionato.

Django puó farlo?
Il dubbio mi è venuto perchè il settings.py mi sembra abbastanza "statico" non vorrei sbattermi per una cosa che o non si puó fare o che mi ci vuole un'enormitá di codice per farla, non vorrei che l'ORM si rifiutasse di collaborare con tutti sti cambi di connessione.

Grazie

H2K
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2010, 23:23   #2
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
ho utilizzato django per un progettino personale, è davvero un ottimo framework.
Ma pensando al tuo quesito non saprei proprio dirti sinceramente, intanto mi iscrivo, se non viene in tuo aiuto qualcuno di più ferrato di me faccio qualche prova io e ti so dire..
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2010, 20:11   #3
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
grazie mille, nel frattempo anche io cerco una soluzione.
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2010, 15:04   #4
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
http://www.google.it/search?q=django...ient=firefox-a è il primo risultato

__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2010, 12:52   #5
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
Quote:
Originariamente inviato da cdere Guarda i messaggi
vero, avevo dimenticato di dire che avevo letto giá la documentazione del sito ufficiale, il problema è che la documentazione spiega come creare un multidatabase con i parametri preimpostati nel settings.py peró non spiega come farlo con dei parametri dinamici provenienti da db (sempre si puó fare).

Diciamo che avró N clienti, e ogni cliente avrá il suo database, non li voglio unire per questioni di quantitá di dati e di privacy... metti caso che scrivo una query sbagliata non voglio che un utente possa accedere ai dati di altre persone per sbaglio o per altri motivi.
Ogni cliente avrá quindi il suo DB, tutti i db avranno la stessa struttura.

In pratica devo riuscire a cambiare la connessione una volta che il cliente fa il login e reindirizzarla al database del cliente specifico, ovviamente in maniera totalmente trasparente.

H2K
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2010, 18:43   #6
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
ah bhè, così direi che la storia è ben diversa.
Secondo me, se hai queste esigenze così specifiche ti conviene prendere in considerazione un framework più flessibile da questo punto di vista
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2010, 15:53   #7
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
Fatto!

Ce l'ho fatta!

Scrivo come, magari puó tornare comodo a qualcuno.

Ho impostato nel settings.py due database (per ora ho fatto le prove sono sqlite3 peró non vedo perchè non dovrebbe funzionare anche con gli altri tipi di db)
ho creato 2 models.py con le strutture del db in 2 applicazioni differenti.
1. Databaseclienti (db di default)
2. DBClientSingolo

ho seguito la guida ufficiale sul multidb in Django e ho creato un DBRouter (la guida è abbastanza criptica in questo senso, ho dovuto faticare un po')

ho generato entrambi i db con syncdb e ho riempito il primo con alcuni clienti e con le indicazioni sul db di ogni cliente.
Il secondo l'ho lasciato vuoto, ho clonato il secondo db in piu copie e l'ho riempito con i dati del cliente specifico.

Nel settings.py quindi come ho giá detto inzialmente chiamo 2 db il primo è pieno di dati e l'altro è un db vuoto, al login faccio la query (con l'ORM di Django) e mi vado a prendere i dati del db specifico del client, con i dati caricati sovrascrivo i dati del secondo db

Codice:
from django.conf import settings
settings.DATABASES['DBClientSingolo']['NAME']=dati.database.name
e inizio a fare le query al DB effettivo del cliente e Django risponde perfettamente.
query che si scrive specificando il db in questo modo:
Codice:
Anagrafe.objects.using('DBClientSingolo').all()
Nel codice soprariportato cambio solo il name del db perchè è sqlite3 nel caso fosse un'altro tipo di database si dovrebbero cambiare tutti i dati di connessione.

Non so se è il metodo piu pulito per fare quello di cui ho bisogno peró è l'unico che ho trovato fin'ora, vi tengo aggiornati nel caso di sviluppi.

Grazie per l'aiuto

H2K
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2010, 16:02   #8
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
ottimo lavoro! E grazie per la condivisione
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 22:29   #9
Johnn
Senior Member
 
Iscritto dal: May 2004
Messaggi: 1136
Penso si possa approcciare al problema anche in modo differente, cioè utilizzando i permessi a livello esculsivamente del db: ogni utente può fare query solo dove ha i permessi. Potrebbe essere comodo a tal proposito creare uno schema all'interno di uno stesso db per ciascun utente. So che si può fare con Posgresql. Che db usi?

Django, o chi per esso, non si dovrebbe più preoccupare della questione.
Johnn è offline   Rispondi citando il messaggio o parte di esso
Old 17-12-2010, 08:44   #10
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
Quote:
Originariamente inviato da Johnn Guarda i messaggi
Penso si possa approcciare al problema anche in modo differente, cioè utilizzando i permessi a livello esculsivamente del db: ogni utente può fare query solo dove ha i permessi. Potrebbe essere comodo a tal proposito creare uno schema all'interno di uno stesso db per ciascun utente. So che si può fare con Posgresql. Che db usi?

Django, o chi per esso, non si dovrebbe più preoccupare della questione.
la tua idea mi pare ottima dovrei studiarmela meglio, ora in sviluppo sto usando sqlite3 che comodo, specialmente perchè lo posso mettere in un repository svn, dopo in produzione useró un db piu potente sicuramente, peró ancora non ho scelto pensavo mysql, pero anche postgree non lo scarterei.
Herod2k è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
The Mandalorian & Grogu: trailer fin...
Fedeltà record: Apple blinda gli utenti,...
Volkswagen ID.3 Neo: fino a 630 km di au...
GPU-Z mette i dati personali a rischio? ...
La PS6 potrebbe essere retrocompatibile ...
Amazfit Cheetah 2 Pro arriva in Italia: ...
Duolingo ammette l'errore dopo un anno: ...
Samsung Galaxy Tab S10 Lite a 249€: il t...
Samsung Micro RGB: la rivoluzione del co...
Sempre più autonomia per gli smar...
Windows sotto attacco: tre zero-day di M...
Capcom e NVIDIA spiegano il path tracing...
Commissione UE contro Google: Big G dovr...
Pale eoliche che durano 500 anni grazie ...
Blink Mini Pan-Tilt a 19,99€: la telecam...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 14:36.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v