of 24/24
Introdução ao SQLAlchemy João Toss Molon ([email protected])

Introdução ao SQLAlchemy

  • View
    265

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Text of Introdução ao SQLAlchemy

  • Introduo ao SQLAlchemy

    Joo Toss Molon ([email protected])

  • Who? Graduando de Cincia da Computao na

    Universidade de Caxias do Sul.

    Desenvolvedor Python/Zope/Plone na HaDi.Com/Instituto Communitas/OTICS

    Baixista da Nantra =) (facebook.com/bandanantra)

  • SQLAlchemy?

    Conjunto de ferramentas para integrao de bancos de dados relacionais e Python

  • Quem usa? Ns!

    E mais alguns...

  • SGBDs suportados

  • Posso usar para... Mapeamento Objeto-Relacional

    Acesso transparente ao banco atravs de objetos, cdigo Python puro

    Aplicao multi-banco (teoricamente...)

    Integrao de produtos Plone com bancos relacionais

  • Estrutura

  • Estrutura ORM (Object Relational Mapper)

    Alto nvel, mapeamento de classes Python para tabelas do banco relacional

  • Estrutura Core

    Linguagem de expresses SQL Definio de schema Conexo com o banco

  • Instalando

    Muito complexo

    $easy_install SQLAlchemy

  • Instalou? Verificando se a instalao est ok

  • Conectando ao banco create_engine(string_conexao, echo)

    string_conexao: SGBD, driver de conexo, usuario, senha, host e nome do banco

  • 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 sesso Session faz o controle da persistncia de objetos

    mapeados pelo ORM Session = sessionmaker() #factory de sessions Session.configure(bind=engine) #configura

    conexao session = Session() #nova session

  • 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 modificaes no banco

  • Consultando session.query(Classe).all() #lista com todos os objetos da

    Classe session.query(Classe).first() #primeira ocorrncia de um

    objeto da Classe session.query(Classe).filter_by(campo=dio).all() #lista

    de objetos filtrados por um campo com valor == dio

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