| | 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 | |