1844
Comentário: modificados exemplos
|
1840
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 3: | Linha 3: |
=== Usando sqlalchemy === | = Usando sqlalchemy = |
Usando sqlalchemy
Usando somente a query expression language
db.py
1 from sqlalchemy import create_engine, Table, Column, MetaData
2 from sqlalchemy import Boolean, Integer, Unicode, String
3 from sqlalchemy.engine.url import URL
4
5 ### para conexao no sqlite:
6 _url = 'sqlite://'
7 ### para conexao no firebird
8 # _url = URL('firebird', 'SYSDBA', 'masterkey', '192.168.1.11', '3052', 'bdband')
9 ### para conexao no mysql
10 # _url = 'mysql://usuario:senha@servidor/banco'
11
12 # cria o engine e metadata
13 engine = create_engine(_url)
14 metadata = MetaData(bind=engine)
15
16 #cria as tabelas
17 tb_usuarios = Table('usuarios', metadata,
18 Column('id', Integer, primary_key=True),
19 Column('nome', Unicode(20), nullable=False),
20 Column('senha', String(10), nullable=False),
21 Column('ativo', Boolean, nullable=False)
22 )
23
24 #cria as tabelas no banco (caso nao existam)
25 metadata.create_all()
Exemplo de uso do arquivo acima
Um outro exemplo de uso, desta vez para consulta, e usando o contextlib.closing para fechar a conexão:
1 import db
2 from contextlib import closing
3
4 with closing(db.engine.connect()) as con:
5 sel_usuarios = db.tb_usuarios.select(db.tb_usuarios.c.ativo)
6 resultado = con.execute(sel_usuarios)
7 for registro in resultado:
8 print registro.nome, registro.id, registro.senha, registro.ativo
9 # conexao fechada automaticamente, mesmo se der algum erro