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 = {
'noscript': 'A Máquina do Tempo',
'author': author_1,
}
book_2 = {
'noscript': '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 = {
'noscript': 'Volta ao Mundo em 80 Dias',
'author': author_2,
}
book_4 = {
'noscript': '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.noscript == "Volta ao Mundo em 80 Dias").get()
book.noscript
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.noscript
# 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.noscript=="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.noscript=="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.
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 = {
'noscript': 'A Máquina do Tempo',
'author': author_1,
}
book_2 = {
'noscript': '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 = {
'noscript': 'Volta ao Mundo em 80 Dias',
'author': author_2,
}
book_4 = {
'noscript': '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.noscript == "Volta ao Mundo em 80 Dias").get()
book.noscript
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.noscript
# 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.noscript=="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.noscript=="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.
O Peewee também possui suporte ao flamework flask, então dependendo do tamanho do projeto, pode ser uma alternativa interessante no lugar de ORM mais complexos como o SQLAlchemy.
É isso pessoal. Obrigado pela leitura e até o próximo tutorial!
Referências
Documentação do Peewee (em inglês) (http://peewee.readthedocs.io/en/latest/index.html)
An Intro to peewee – Another Python ORM (https://www.blog.pythonlibrary.org/2014/07/17/an-intro-to-peewee-another-python-orm/)
Introduction to peewee (http://jonathansoma.com/tutorials/webapps/intro-to-peewee/)
Introdução à Linguagem SQL (https://www.novatec.com.br/livros/introducao-sql/)
É isso pessoal. Obrigado pela leitura e até o próximo tutorial!
Referências
Documentação do Peewee (em inglês) (http://peewee.readthedocs.io/en/latest/index.html)
An Intro to peewee – Another Python ORM (https://www.blog.pythonlibrary.org/2014/07/17/an-intro-to-peewee-another-python-orm/)
Introduction to peewee (http://jonathansoma.com/tutorials/webapps/intro-to-peewee/)
Introdução à Linguagem SQL (https://www.novatec.com.br/livros/introducao-sql/)
http://blog.dunderlabs.com/django-boilerplate-a-estrutura-de-projeto-django-que-tenho-usado.html
Vamos falar sobre estruturas de projeto Django? E esse é pra ser o primeiro de uma série sobre Django, pra quem sabe servir como ajuda pra quem tiver iniciando. Todo feedback é super bem vindo :D
Vamos falar sobre estruturas de projeto Django? E esse é pra ser o primeiro de uma série sobre Django, pra quem sabe servir como ajuda pra quem tiver iniciando. Todo feedback é super bem vindo :D
__labs__
Django Boilerplate: A estrutura de projeto Django que tenho usado
Depois de algum tempo utilizando Django e o seu famoso "startproject", você começa a se aventurar em novos caminhos testando novas ...
Continuando a série sobre #Django, vamos utilizar o boilerplate que vimos no post anterior para dar o nosso "startproject". Vem junto! 😎
http://blog.dunderlabs.com/django-iniciando-seu-projeto.html
http://blog.dunderlabs.com/django-iniciando-seu-projeto.html
__labs__
Django startproject: Iniciando o seu projeto
Uma vez que temos a escolha da nossa estrutura, vamos iniciar um projeto Django novo usando esse boilerplate
Forwarded from Botaro Cássio no telegram
Este ano, a PythonBrasil[13] conta com 16 palestras ministradas por mulheres. Destas, 13 ministradas por PyLadies ativas em suas comunidades locais. E este número ainda pode aumentar já que a conferência ainda está confirmando a sua grade do evento! Como no ano passado, estamos lançando uma campanha de apoio financeiro para ajudar as PyLadies que de outra maneira não poderiam comparecer ao evento. Qualquer ajuda é muito bem vinda <3 Se não puder ajudar financeiramente, ajude compartilhando essa mensagem <3 Vamos ajudar a aumentar a visibilidade das mulheres na tecnologia! https://www.catarse.me/pyladies_na_pythonbrasil_13?ref=project_link
Catarse
PyLadies na PythonBrasil[13]
Ajude a aumentar a diversidade na maior conferência da comunidade Python no Brasil.
Using Open Source to Create a Video Thumbnails Service
http://blog.flavioribeiro.com/using-open-source-to-create-a-video-thumbnails-service/
http://blog.flavioribeiro.com/using-open-source-to-create-a-video-thumbnails-service/
Confirmada a palestra "Análise de imagens e machine learning utilizando Python e openCV" - Paula Santos #pybr13… https://t.co/FIc4oLKvTA
Twitter
Python Brasil
Confirmada a palestra "Análise de imagens e machine learning utilizando Python e openCV" - Paula Santos #pybr13 #uaipython
Confirmada a palestra "Serenata de Amor: Inteligência artificial usando dados abertos governamentais" -… https://t.co/qUcuKzixDs
Twitter
Python Brasil
Confirmada a palestra "Serenata de Amor: Inteligência artificial usando dados abertos governamentais" - @jesstemporal #pybr13 #uaipython
Confirmada a palestra "Gênero e Número: Python ajudando nas questões de gênero brasileiras" - @turicas #pybr13… https://t.co/f1NeVhsNfz
Twitter
Python Brasil
Confirmada a palestra "Gênero e Número: Python ajudando nas questões de gênero brasileiras" - @turicas #pybr13 #uaipython
Confirmada a palestra "Bots (automatizando tarefas) um funcionário que não reclama" - @elinaldosoft #pybr13… https://t.co/vVTQNXgZHl
Twitter
Python Brasil
Confirmada a palestra "Bots (automatizando tarefas) um funcionário que não reclama" - @elinaldosoft #pybr13 #uaipython
É com orgulho que anunciamos a @labcodes como patrocinadora da #pybr13! Conheça mais sobre a Labcodes em… https://t.co/m1hP6JHAHo
Twitter
Python Brasil
É com orgulho que anunciamos a @labcodes como patrocinadora da #pybr13! Conheça mais sobre a Labcodes em https://t.co/Tw1HCH83Ra #uaipython
Confirmada a palestra "Começando com Python - Aprendendo para ensinar, a melhor forma de programar!" -… https://t.co/SBowGboMEt
Twitter
Python Brasil
Confirmada a palestra "Começando com Python - Aprendendo para ensinar, a melhor forma de programar!" - @_anapaulamendes #pybr13 #uaipython
Ô sô , já ajudou as pyladies? Elas estão querendo pão de queijo também, uai. https://t.co/2Tb10Z6BWH https://t.co/uZ06oory0k
Catarse
PyLadies na PythonBrasil[13]
Ajude a aumentar a diversidade na maior conferência da comunidade Python no Brasil.
RT @pythonbrasil: Ô sô , já ajudou as pyladies? Elas estão querendo pão de queijo também, uai. https://t.co/2Tb10Z6BWH https://t.co/uZ06oor…
Catarse
PyLadies na PythonBrasil[13]
Ajude a aumentar a diversidade na maior conferência da comunidade Python no Brasil.
Forwarded from Fernando Masanori
Conheço a fundadora, legal a ideia https://www.vittude.com/
Vittude
Terapia Online Onde Você Estiver | Vittude
Faça Terapia Online e dê o primeiro passo no autocuidado. A Vittude conecta você a psicólogos de diversas linhas terapêuticas em um ambiente totalmente seguro.
Forwarded from Fernando Masanori
Povo de Manaus, vou dar um curso de Raspagem de Dados gratuito, foco é mais em jornalistas, economistas e cientistas sociais https://www.eventbrite.com.br/e/hackeando-dados-publicos-usando-python-tickets-36753337221
Eventbrite
Hackeando Dados Públicos usando Python
Curso voltado para jornalistas, economistas, cientistas sociais e pessoas de áreas correlatas.
Não é preciso ter conhecimento em programação, mas ter muita vontade de aprender é obrigatório.
O curso será dividido em duas partes: no primeiro dia, apresentação…
Não é preciso ter conhecimento em programação, mas ter muita vontade de aprender é obrigatório.
O curso será dividido em duas partes: no primeiro dia, apresentação…
Confirmada a palestra "Redes Neurais com Python e Scikit" - @__biancarosa #pybr13 #uaipython Se inscreva!… https://t.co/qdUgJrSZNn
Twitter
Python Brasil
Confirmada a palestra "Redes Neurais com Python e Scikit" - @__biancarosa #pybr13 #uaipython Se inscreva! https://t.co/I1MyUK6gHC
Confirmada a palestra "Python na Infraestrutura MySQL do Facebook" - Artur Rodrigues #pybr13 #uaipython… https://t.co/UlYqSsnyAY
Twitter
Python Brasil
Confirmada a palestra "Python na Infraestrutura MySQL do Facebook" - Artur Rodrigues #pybr13 #uaipython https://t.co/81oHH8Ak0h