Introdução ao SQLAlchemy

614 visualizações

Publicada em

Introdução básica ao SQLAlchemy, um SQLToolkit e ORM desenvolvido em Python.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
614
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
18
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introdução ao SQLAlchemy

  1. 1. Introdução ao SQLAlchemy João Toss Molon (jtmolon@gmail.com)
  2. 2. Who? ● Graduando de Ciência da Computação na Universidade de Caxias do Sul. ● Desenvolvedor Python/Zope/Plone na HaDi. Com/Instituto Communitas/OTICS ● Baixista da Nantra =) (facebook.com/bandanantra)
  3. 3. SQLAlchemy? ● Conjunto de ferramentas para integração de bancos de dados relacionais e Python
  4. 4. Quem usa? ● Nós! ● E mais “alguns”...
  5. 5. SGBDs suportados
  6. 6. Posso usar para... ● Mapeamento Objeto-Relacional ● Acesso transparente ao banco através de objetos, código Python puro ● Aplicação “multi-banco” (teoricamente...) ● Integração de produtos Plone com bancos relacionais
  7. 7. Estrutura
  8. 8. Estrutura ● ORM (Object Relational Mapper) ○ Alto nível, mapeamento de classes Python para tabelas do banco relacional
  9. 9. Estrutura ● Core ○ Linguagem de expressões SQL ○ Definição de schema ○ Conexão com o banco
  10. 10. Instalando ● Muito complexo $easy_install SQLAlchemy
  11. 11. Instalou? ● Verificando se a instalação está ok
  12. 12. Conectando ao banco ● create_engine(string_conexao, echo) ○ string_conexao: SGBD, driver de conexão, usuario, senha, host e nome do banco
  13. 13. Mapeando classes ● Extension declarative ○ declarative_base == base para mapeamento de classes para tabelas
  14. 14. Mapeando classes
  15. 15. Mapeando classes
  16. 16. Criando as tabelas no banco ● Base.metadata.create_all(engine)
  17. 17. Instanciando um objeto
  18. 18. Criando uma sessão ● Session faz o controle da persistência de objetos mapeados pelo ORM ○ Session = sessionmaker() #factory de sessions ○ Session.configure(bind=engine) #configura conexao ○ session = Session() #nova session
  19. 19. Adicionando um objeto ● session.add(objeto) #adiciona o objeto ● session.new #lista os objetos novos ● session.dirty #lista os objetos modificados ● session.commit #persiste as modificações no banco
  20. 20. Consultando ● session.query(Classe).all() #lista com todos os objetos da Classe ● session.query(Classe).first() #primeira ocorrência de um objeto da Classe ● session.query(Classe).filter_by(campo=”dio”).all() #lista de objetos filtrados por um campo com valor == ”dio”
  21. 21. Removendo ● Buscar o objeto e apagar ○ obj = session.query(Classe).filter_by(campo=”dio”). first() ○ session.delete(obj)
  22. 22. Mas...funciona? ● Abre o terminal e mostra a que veio!
  23. 23. Fonte ● http://docs.sqlalchemy.org/en/rel_0_8/
  24. 24. Perguntas?

×