TurboGears - SQLAlchemy

Sebbene sia possibile utilizzare SQL nell'applicazione TurboGears per eseguire operazioni CRUD su qualsiasi database relazionale, è consigliabile utilizzare SQLAlchemy, un toolkit Python è un potente Object Relation Mapper che offre agli sviluppatori di applicazioni la piena potenza e flessibilità di SQL. Oltre al supporto per i database basati su SQL tramite SQLAlchemy, TurboGears supporta anche il database MongoDB tramite Ming. In questa sezione viene discussa la funzionalità di SQLAlchemy.

Cos'è ORM (Object Relational Mapping)?

La maggior parte delle piattaforme di linguaggio di programmazione sono orientate agli oggetti. I dati nei server RDBMS d'altra parte vengono memorizzati come tabelle. Il mapping delle relazioni tra oggetti è una tecnica per mappare i parametri degli oggetti alla struttura della tabella RDBMS sottostante. Un'API ORM fornisce metodi per eseguire operazioni CRUD senza dover scrivere istruzioni SQL non elaborate.

Quando un progetto TurboGears viene creato utilizzando il comando 'avvio rapido' dal toolkit del cambio, il supporto SQLAlchemy è abilitato per impostazione predefinita dalle seguenti impostazioni di configurazione:

config['use_sqlalchemy'] = True
config['sqlalchemy.url'] = 'sqlite:///devdata.db'

Il progetto "quickstarted" crea anche un pacchetto di modelli al suo interno. Ad esempio, un progetto "Hello" avrà Hello \ hello \ model. I seguenti file vengono creati in questo pacchetto:

  • __init__.py- Qui è dove viene impostato l'accesso al database. Gli oggetti del modello dell'applicazione vengono importati in questo modulo. Ha anche una DBSession, un gestore di sessioni globale e anche una DeclarativeBase, che è una classe base per tutte le classi del modello.

  • auth.py- Qui è dove vengono definiti i modelli utilizzati dallo stack di autenticazione. Ulteriori modelli di database vengono memorizzati in questo pacchetto, come modulo separato, e aggiunti in __init__.py.