try:
Book.create_table()
except peewee.OperationalError:
print 'Tabela Book ja existe!'
Após executarmos o código, será criado um arquivo de nome codigo_avulso.db no mesmo diretório do nosso arquivo
main.py, contendo as tabelas Author e Book. A estrutura do diretório ficou assim:
.
├── codigo_avulso.db
├──
main.py
├──
model.py
Inserindo dados no banco
Agora, vamos popular nosso banco com alguns autores e seus respectivos livros. Isso pode ser feito de dois modos. Através do método create, quando desejamos inserir um registro apenas; ou pelo método insert_many, quando desejamos inserir vários registros de uma vez em uma mesma tabela.
# Inserimos um autor de nome "H. G. Wells" na tabela 'Author'
author_1 = Author.create(name='H. G. Wells')
book_1 = {
'title': 'A Máquina do Tempo',
'author': author_1,
}
book_2 = {
'title': 'Guerra dos Mundos',
'author': author_1,
}
# Inserimos um autor de nome "Julio Verne" na tabela 'Author'
author_2 = Author.create(name='Julio Verne')
book_3 = {
'title': 'Volta ao Mundo em 80 Dias',
'author': author_2,
}
book_4 = {
'title': 'Vinte Mil Leguas Submarinas',
'author_id': author_1,
}
books = [book_1, book_2, book_3, book_4]
# Inserimos os quatro livros na tabela 'Book'
Book.insert_many(books).execute()
Consultando dados no banco
O Peewee possui comandos destinados a realizar consultas no banco. De maneira semelhante ao conhecido SELECT. Podemos fazer essa consulta de duas maneiras. Se desejamos o primeiro registro que corresponda a nossa pesquisa, podemos utilizar o método get().
book = Book.get(Book.title == "Volta ao Mundo em 80 Dias").get()
book.title
Porém, se desejamos mais de um registro, utilizamos o método select. Por exemplo, para consultar todos os livros escritos pelo autor "H. G. Wells".
books =
Book.select().join(Author).where(
Author.name=='H. G. Wells')
# Exibe a quantidade de registros que corresponde a nossa pesquisa
print books.count()
for book in books:
book.title
# Resultado:
# * A Máquina do Tempo
# * Guerra dos Mundos
# * Vinte Mil Leguas Submarinas
Também podemos utilizar outras comandos do SQL como limit e group (para mais detalhes, ver a documentação aqui (
http://peewee.readthedocs.io/en/latest/index.html)).
Alterando dados no banco
Alterar dados também é bem simples. No exemplo anterior, se observarmos o resultado da consulta dos livros do autor "H. G. Wells", iremos nos deparar com o livro de título "Vinte Mil Léguas Submarinas". Se você, caro leitor, gosta de contos de ficção-científica, sabe que esta obra foi escrito por "Julio Verne", coincidentemente um dos autores que também estão cadastrados em nosso banco. Sendo assim, vamos corrigir o autor do respectivo livro.
Primeiro vamos buscar o registro do autor e do livro:
new_author = Author.get(
Author.name == 'Julio Verne')
book = Book.get(Book.title=="Vinte Mil Leguas Submarinas")
Agora vamos alterar o autor e gravar essa alteração no banco.
# Alteramos o autor do livro
book.author = new_author
# Salvamos a alteração no banco
book.save()
Deletando dados do banco
Assim como as operações anteriores, também podemos deletar registros do banco de maneira bem prática. Como exemplo, vamos deletar o livro "Guerra dos Mundos" do nosso banco de dados.
# Buscamos o livro que desejamos excluir do banco
book = Book.get(Book.title=="Guerra dos Mundos")
# Excluimos o livro do banco
book.delete_instance()
Simples não?
Conclusão
É isso pessoal. Este tutorial foi uma introdução bem enxuta sobre o Peewee. Ainda existem muitos tópicos que não abordei aqui, como a criação de primary_key, de campos many2many entre outros recursos, pois foge do escopo deste tutorial. Se você gostou do ORM, aconselho a dar uma olhada também na sua documentação, para conseguir extrair todo o potencial da ferramenta. A utilização de um ORM evita que o desenvolvedor perca tempo escrevendo query SQL e foque totalmente no desenolvimento de código.