| 1 | {{{ |
| 2 | #!rst |
| 3 | |
| 4 | .. |
| 5 | ====================== |
| 6 | Database API reference |
| 7 | ====================== |
| 8 | |
| 9 | .. sidebar:: Referência da API de Banco de Dados |
| 10 | :subtitle: tradução para o português. |
| 11 | |
| 12 | Documento original: `Django Database API`_ |
| 13 | |
| 14 | Tradução: mario `<mario.caseiro at gmail.com>` |
| 15 | |
| 16 | Referente a revisão: 3896 |
| 17 | |
| 18 | .. _Django Database API: http://www.djangoproject.com/documentation/db_api/ |
| 19 | |
| 20 | .. contents:: **Conteúdos do capítulo** |
| 21 | |
| 22 | =================================== |
| 23 | Referência da API de Banco de Dados |
| 24 | =================================== |
| 25 | |
| 26 | Este documento cobre a versão 0.95 de Django e a versão do desenvolvimento. Docs anteriores: `0.90`_, `0.91`_ |
| 27 | ---------------------------------------------------------------------------------------------------------------- |
| 28 | |
| 29 | .. _0.90: http://www.djangoproject.com/documentation/0_90/ |
| 30 | .. _0.91: http://www.djangoproject.com/documentation/0_91/ |
| 31 | |
| 32 | Uma vez que você criou seus `data models`_, Django fornece automaticamente uma API de abstração de banco de dados para você criar, recuperar, atualizar e deletar objetos. Este documento descreve esta API . |
| 33 | |
| 34 | .. _`data models`: http://www.djangoproject.com/documentation/model_api/ |
| 35 | |
| 36 | Durante toda esta referência, iremos fazer referências aos modelos descritos abaixo, que compreenderiam uma aplicação de weblog. |
| 37 | |
| 38 | .. code-block:: python |
| 39 | |
| 40 | class Blog(models.Model): |
| 41 | name = models.CharField(maxlength=100) |
| 42 | tagline = models.TextField() |
| 43 | |
| 44 | def __str__(self): |
| 45 | return self.name |
| 46 | |
| 47 | class Author(models.Model): |
| 48 | name = models.CharField(maxlength=50) |
| 49 | email = models.URLField() |
| 50 | |
| 51 | def __str__(self): |
| 52 | return self.name |
| 53 | |
| 54 | class Entry(models.Model): |
| 55 | blog = models.ForeignKey(Blog) |
| 56 | headline = models.CharField(maxlength=255) |
| 57 | body_text = models.TextField() |
| 58 | pub_date = models.DateTimeField() |
| 59 | authors = models.ManyToManyField(Author) |
| 60 | |
| 61 | [imperfeita] def __str__(self): |
| 62 | return self.name |
| 63 | |
| 64 | |
| 65 | Criando objetos |
| 66 | ================ |
| 67 | |
| 68 | Para representar tabelas do banco de dados em objetos do Python, Django usa um sistema intuitivo: Uma classe modelo representa uma tabela da banco de dados, e uma instância dessa classe representa um registro particular na tabela do banco de dados |
| 69 | |
| 70 | Para criar um objeto, instancie-o usando argumentos da classe modelo, então chame ``save()`` para salva-lo no banco de dados. |
| 71 | |
| 72 | Você importa a classe modelo de onde quer que ela esteja dentro do Python path, como é de se esperar. (Nós destacamos isto aqui porque em versões anteriores do Django tinhamos importações de classes modelo conturbadas.) |
| 73 | |
| 74 | Assumindo que os modelos estejam em um arquivo ``mysite/blog/models.py``, segue o exemplo:: |
| 75 | |
| 76 | from mysite.blog.models import Blog |
| 77 | b = Blog(name='Beatles Blog', tagline='All the latest Beatles news.') |
| 78 | b.save() |
| 79 | |
| 80 | Isto executa uma declaração SQL ``INSERT`` por baixo do panos. Django não conecta ao banco de dados até que você se chame explicitamente ``save()``. |
| 81 | |
| 82 | O método ``save()`` não retorna valor algum. |
| 83 | |
| 84 | Para criar um objeto e salvá-lo, tudo em um único passo veja o método `create`_ . |
| 85 | |
| 86 | .. _`create`: http://www.djangoproject.com/documentation/db_api/#create-kwargs |
| 87 | |
| 88 | |
| 89 | Auto incrementando chaves primárias |
| 90 | ----------------------------------- |
| 91 | |
| 92 | |
| 93 | }}} |
| 94 | |
| 95 | D E A R F R I E N D S: |
| 96 | I have already translate more on this document, but didn't have more time to do all rST formating. |
| 97 | I hope to finish the tranlating this week, since that happens i'll update this page. |
| 98 | |
| 99 | |
| 100 | |
| 101 | |
| 102 | |