Sei sulla pagina 1di 1

Le Query al Database in Django

http://www.darioagliottone.it/query-django-parte-1/

Query, Django
Dopo aver creato i modelli di dati , Django fornisce automaticamente un set di API per l astrazione del database che consente di creare, recuperare, aggiornare e cancellare oggetti. Ora vedremo come utilizzare queste API. In questa guida (e nella documentazione), si far riferimento ai seguenti modelli, che comprendono una applicazione Weblog: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __unicode__(self): return self.name class Author(models.Model): name = models.CharField(max_length=50) email = models.EmailField() def __unicode__(self): return self.name class Entry(models.Model): blog = models.ForeignKey(Blog) headline = models.CharField(max_length=255) body_text = models.TextField() pub_date = models.DateTimeField() mod_date = models.DateTimeField() authors = models.ManyToManyField(Author) n_comments = models.IntegerField() n_pingbacks = models.IntegerField() rating = models.IntegerField() def __unicode__(self): return self.headline

Creazione di oggetti
Per rappresentare i dati delle tabelle in oggetti Python, Django utilizza un sistema intuitivo: La classe del modello rappresenta una tabella sul database, e unistanza di questa classe rappresenta uno specifico record della tabella. Per creare un oggetto, istanziatelo usando gli argomenti del modello e poi chiamate la funzione save() per salvarlo nel db. possibile importare la classe del modello idipendentemente da dove si trovi Assumiamo che la classe del modello sia nel file mysite / blog / models.py , ecco un esempio: 1 2 3 >>> from blog.models import Blog >>> b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.') >>> b.save()

Questo codice esegue una INSERT SQL. Django non esegue la query fino a quando non si chiama il metodo save() Il metodo save() non restituisce alcun valore.

save() ha un certo numero di opzioni avanzate non descritte qui. Vedere la documentazione per save() per maggiori dettagli. Per creare e salvare un oggetto in un unico passaggio, utilizzate il metodo create().

Salvataggio delle modiche agli oggetti


Per salvare le modifiche a un oggetto che gi presente nel database, utilizzate il metodo save() Data listanza di un Blog b5 che gi stata salvata nel database, questo esempio cambia il nome e aggiorna il record modificato nel db: 1 2 >> b5.name = 'New name' >> b5.save()

Questo esempio esegue un UPDATE. Django esegue la query di update fino a quando non si chiama il metodo save() .

1 di 1

18/05/12 13.53