Introdução ao SQLAlchemy
João Toss Molon (jtmolon@gmail.com)
Who?
● Graduando de Ciência da Computação na
Universidade de Caxias do Sul.
● Desenvolvedor Python/Zope/Plone na HaDi.
Com...
SQLAlchemy?
● Conjunto de ferramentas para integração de
bancos de dados relacionais e Python
Quem usa?
● Nós!
● E mais “alguns”...
SGBDs suportados
Posso usar para...
● Mapeamento Objeto-Relacional
● Acesso transparente ao banco através de
objetos, código Python puro
● ...
Estrutura
Estrutura
● ORM (Object Relational Mapper)
○ Alto nível, mapeamento de classes Python para
tabelas do banco relacional
Estrutura
● Core
○ Linguagem de expressões SQL
○ Definição de schema
○ Conexão com o banco
Instalando
● Muito complexo
$easy_install SQLAlchemy
Instalou?
● Verificando se a instalação está ok
Conectando ao banco
● create_engine(string_conexao, echo)
○ string_conexao: SGBD, driver de conexão, usuario,
senha, host ...
Mapeando classes
● Extension declarative
○ declarative_base == base para mapeamento de
classes para tabelas
Mapeando classes
Mapeando classes
Criando as tabelas no banco
● Base.metadata.create_all(engine)
Instanciando um objeto
Criando uma sessão
● Session faz o controle da persistência de objetos
mapeados pelo ORM
○ Session = sessionmaker() #facto...
Adicionando um objeto
● session.add(objeto) #adiciona o objeto
● session.new #lista os objetos novos
● session.dirty #list...
Consultando
● session.query(Classe).all() #lista com todos os objetos da
Classe
● session.query(Classe).first() #primeira ...
Removendo
● Buscar o objeto e apagar
○ obj = session.query(Classe).filter_by(campo=”dio”).
first()
○ session.delete(obj)
Mas...funciona?
● Abre o terminal e mostra a que veio!
Fonte
● http://docs.sqlalchemy.org/en/rel_0_8/
Perguntas?
Próximos SlideShares
Carregando em…5
×

Introdução ao SQLAlchemy

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

×