1590
Comentário:
|
1698
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 3: | Linha 3: |
=== Como criar um pool de conexões no sqlalchemy ? === | === Criando tabela no sqlalchemy === |
Linha 5: | Linha 5: |
from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData,PrimaryKeyConstraint,Sequence,Boolean | * tabela -> cli_usu * servidor de banco de dados utilizado no exemplo -> FireBird 2.1 {{{#!python # este arquivo: db.py: from sqlalchemy import create_engine,Table,Column,Integer,String,MetaData from sqlalchemy import PrimaryKeyConstraint,Sequence,Boolean from sqlalchemy.orm import sessionmaker |
Linha 7: | Linha 14: |
from sqlalchemy.orm import sessionmaker | |
Linha 10: | Linha 16: |
#bdband pode ser substituido por 'c:\dados\banco.fdb' | |
Linha 16: | Linha 23: |
cli_usu = Table('cli_usu', metadata, Column('cli_usu_id',Integer,Sequence('gn_cli_usu_id')),#criar um campo cli_usu_id, do tipo inteiro, utilizando sequence do banco Column('nome',String(20),nullable=False),#criar um campo nome, do tipo String com tamanho 20, não aceitando null Column('senha',String(10),nullable=False),#criar um campo senha, do tipo String com tamanho 10, não aceitando null Column('ativo',Boolean,nullable=False)#criar um campo ativo, do tipo Boolean (no caso do firebird o sqlalchemy irá criar o campo ativo do tipo smallint (0-false,1-true ), não aceitando null ) cli_usu_pk = PrimaryKeyConstraint('cli_usu_id',name='CLI_USU_PK') #criar a pk da tabela cli_usu, atribuindo um nome a constraint cli_usu.append_constraint(cli_usu_pk) #incluindo a pk à tabela cli_usu |
cli_usu = Table('cli_usu', metadata, Column('cli_usu_id',Integer,Sequence('gn_cli_usu_id')), Column('nome',String(20),nullable=False), Column('senha',String(10),nullable=False), Column('ativo',Boolean,nullable=False) ) #cria a pk cli_usu_pk = PrimaryKeyConstraint('cli_usu_id',name='CLI_USU_PK') |
Linha 26: | Linha 33: |
metadata.create_all()#cria as tabelas no banco (caso nao existam) | #adiciona a pk à tabela cli_usu.append_constraint(cli_usu_pk) |
Linha 28: | Linha 36: |
Session = sessionmaker(bind=engine,autoflush=True,transactional=True) #cria o sessionmaker | #cria as tabelas no banco (caso nao existam) metadata.create_all() #cria o sessionmaker Session = sessionmaker(bind=engine,autoflush=True,transactional=True) #Agora, a partir de qualquer lugar do seu projeto, você pode instanciar uma sessao. #outro arquivo: login.py import db sessao = db.Session() sel_cli = db.cli_usu.select(db.cli_usu.c.ativo==1) result = sessao.execute(sel_cli) for row in result: print row.nome,row.cli_usu_id,row.senha,row.ativo sessao.commit() sessao.close()}}} |
Conteúdo
Criando tabela no sqlalchemy
tabela -> cli_usu
servidor de banco de dados utilizado no exemplo -> FireBird 2.1
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 à 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,transactional=True)
34
35 #Agora, a partir de qualquer lugar do seu projeto, você pode instanciar uma sessao.
36
37 #outro arquivo: login.py
38 import db
39 sessao = db.Session()
40 sel_cli = db.cli_usu.select(db.cli_usu.c.ativo==1)
41 result = sessao.execute(sel_cli)
42 for row in result:
43 print row.nome,row.cli_usu_id,row.senha,row.ativo
44 sessao.commit()
45 sessao.close()