associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "DicasSqlalchemy"

Diferenças entre as versões de 5 e 6
Revisão 5e 2009-12-17 16:03:40
Tamanho: 1810
Editor: big_rid
Comentário:
Revisão 6e 2009-12-17 16:13:15
Tamanho: 1724
Editor: big_rid
Comentário:
Deleções são marcadas assim. Adições são marcadas assim.
Linha 5: Linha 5:
 * tabela -> cli_usu
 * servidor de banco de dados utilizado no exemplo -> FireBird 2.1
Linha 8: Linha 6:
Linha 43: Linha 42:
ins = cli_usu.insert().values(id=1,nome='jack',senha='senha',ativo='1') ins = cli_usu.insert().values(nome='jack',senha='senha',ativo='1')
Linha 47: Linha 46:
Linha 58: Linha 58:
}}}

Criando tabela no sqlalchemy

   1 #este arquivo: db.py:
   2 
   3 from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData
   4 from sqlalchemy import PrimaryKeyConstraint,Sequence,Boolean
   5 from sqlalchemy.orm import sessionmaker
   6 from sqlalchemy.engine.url import URL
   7 
   8 #bdband -> alias criado no arquivo firebird.conf ( Firebird 2.1 )
   9 #bdband pode ser substituido por 'c:/dados/banco.fdb'
  10 
  11 _url     = URL('firebird','SYSDBA','masterkey','192.168.1.11','3052','bdband')
  12 engine   = create_engine(_url)
  13 metadata = MetaData(bind=engine)
  14 
  15 #cria a tabela
  16 cli_usu = Table('cli_usu',
  17                  metadata,
  18                  Column('cli_usu_id',Integer,Sequence('gn_cli_usu_id')),
  19                  Column('nome',String(20),nullable=False),
  20                  Column('senha',String(10),nullable=False),
  21                  Column('ativo',Boolean,nullable=False)
  22                  )
  23 #cria a pk
  24 cli_usu_pk = PrimaryKeyConstraint('cli_usu_id',name='CLI_USU_PK')
  25 
  26 #adiciona a pk a tabela
  27 cli_usu.append_constraint(cli_usu_pk)
  28 
  29 #cria as tabelas no banco (caso nao existam)
  30 metadata.create_all()
  31 
  32 #cria o sessionmaker
  33 Session = sessionmaker(bind=engine,autoflush=True)
  34 
  35 sessao = Session()
  36 ins = cli_usu.insert().values(nome='jack',senha='senha',ativo='1')
  37 sessao.execute(ins)
  38 sessao.commit()
  39 sessao.close()
  40 
  41 #Agora, a partir de qualquer lugar do seu projeto, voce pode instanciar uma sessao.
  42 
  43 #outro arquivo: login.py
  44 import db
  45 sessao  = db.Session()
  46 sel_cli = db.cli_usu.select(db.cli_usu.c.ativo==1)
  47 result  = sessao.execute(sel_cli)
  48 for row in result:
  49     print row.nome,row.cli_usu_id,row.senha,row.ativo
  50 sessao.commit()
  51 sessao.close()