Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-12-2010, 09: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 04-12-2010, 00: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, 21: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, 16: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, 13: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, 19: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, 16: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, 17: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, 23: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, 09: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


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Roscosmos ha lanciato il satellite meteo...
Starship Troopers: Ultimate Bug Wars, to...
Il razzo spaziale europeo Ariane 6, per ...
Oracle Fusion Cloud Applications si pote...
OHB Italia svilupperà un satellit...
Fortinet: "Ora abbiamo una chance d...
Linux Mint chiude con gli aggiornamenti ...
Compressori portatili auto in sconto su ...
Durante il lancio della missione USSF-87...
Dopo il ritiro di Intel da Magdeburgo, l...
Xiaomi 15T scende a 388€ su Amazon: 12GB...
MSI Afterburner: arriva il monitoraggio ...
Missione cinese Chang'e-6: confermata l'...
Addio esenzione sotto i 150 euro: l'UE i...
Allarme riavvii su Windows 11 dopo il ri...
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: 22:00.


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