SQLAlchemy Core - Conectando ao banco de dados
No capítulo anterior, discutimos sobre a linguagem de expressão em SQLAlchemy. Agora vamos prosseguir para as etapas envolvidas na conexão com um banco de dados.
Classe de motor conecta um Pool and Dialect together para fornecer uma fonte de banco de dados connectivity and behavior. Um objeto da classe Engine é instanciado usando ocreate_engine() função.
A função create_engine () leva o banco de dados como um argumento. O banco de dados não precisa ser definido em nenhum lugar. O formulário de chamada padrão deve enviar a URL como o primeiro argumento posicional, geralmente uma string que indica o dialeto do banco de dados e os argumentos de conexão. Usando o código fornecido a seguir, podemos criar um banco de dados.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Para MySQL database, use o comando abaixo -
engine = create_engine("mysql://user:[email protected]/college",echo = True)
Para mencionar especificamente DB-API para ser usado para conexão, o URL string assume a seguinte forma -
dialect[+driver]://user:[email protected]/dbname
Por exemplo, se você estiver usando PyMySQL driver with MySQL, use o seguinte comando -
mysql+pymysql://<username>:<password>@<host>/<dbname>
o echo flagé um atalho para configurar o registro SQLAlchemy, que é realizado por meio do módulo de registro padrão do Python. Nos capítulos subsequentes, aprenderemos todos os SQLs gerados. Para ocultar a saída detalhada, defina o atributo echo comoNone. Outros argumentos para a função create_engine () podem ser específicos do dialeto.
A função create_engine () retorna um Engine object. Alguns métodos importantes da classe Engine são -
Sr. Não. | Método e Descrição |
---|---|
1 | connect() Retorna o objeto de conexão |
2 | execute() Executa uma construção de instrução SQL |
3 | begin() Retorna um gerenciador de contexto entregando uma Conexão com uma Transação estabelecida. Após a operação bem-sucedida, a transação é confirmada, caso contrário, é revertida |
4 | dispose() Disposições do pool de conexão usado pelo motor |
5 | driver() Nome do driver do dialeto em uso pelo motor |
6 | table_names() Retorna uma lista de todos os nomes de tabelas disponíveis no banco de dados |
7 | transaction() Executa a função dada dentro de um limite de transação |