Você pode interagir facilmente com o banco de dados PostGresql com a linguagem de programação Python. Tudo que você precisa fazer é instalar o módulo Python Psycopg2 com Pip e você está pronto para ir.
Neste artigo, mostrarei como acessar o banco de dados PostGresql com Python no Linux. Vou usar o Debian 9 Stretch como meu sistema operacional e linguagem de programação Python 3. A versão do banco de dados PostGresql que eu vou usar é PostgreSQL 9.6. Então vamos começar.
Você deve ter
Você pode encontrar muitos artigos no Linuxhint.com isso pode ajudá -lo a configurar o PostgreSQL e instalar Python+Pip em sua distribuição favorita do Linux. Basta procurar por isso.
Criando um banco de dados PostGresql e usuário:
Nesta seção, mostrarei como criar um banco de dados PostGresql e usuário no Linux. Estaremos nos conectando a este banco de dados do Python mais tarde neste artigo.
Primeiro descubra seu nome de usuário de login com o seguinte comando:
$ whoami
Como você pode ver, meu nome de usuário de login é Shovon. O seu será diferente. Certifique -se de anotar isso como você precisará mais tarde.
Agora inicie o terminal interativo do PostGresql com o seguinte comando:
$ sudo -u postgres psqlO terminal interativo PostgreSQL deve iniciar.
Agora crie um banco de dados PostGresql Pyapp com o seguinte comando SQL:
PostGres =# Crie banco de dados pyapp;O Pyapp Banco de dados deve ser criado.
Agora você tem que criar um novo usuário do PostGresql. Além disso, verifique se o nome de usuário é o mesmo que seu nome de usuário de login.
Faça um novo usuário do PostgreSQL com o seguinte comando SQL:
PostGres =# Crie usuário your_login_username com senha criptografada 'your_password';Nota: Substitua your_login_username e sua senha com seu próprio nome de usuário de login e senha.
O usuário do PostgreSQL deve ser criado.
Agora conceda ao usuário recém -criado todos os privilégios para o banco de dados recém -criado Pyapp com o seguinte comando SQL:
PostGres =# conceda tudo no banco de dados pyapp para your_login_username;Todos os privilégios para o Pyapp O banco de dados é concedido ao seu usuário de login.
Agora saia do terminal PostgreSQL com o seguinte comando:
PostGres =# \ qAgora vamos ver se podemos fazer login no nosso banco de dados recém -criado Pyapp Usando nosso nome de usuário de login com o seguinte comando:
$ psql - -dbname = pyapp - -assasswordAgora digite a senha que você definiu anteriormente para o seu usuário do PostGresql e pressione .
Você deveria estar conectado.
Instalando PsycopG2 com PIP e PIP3:
Agora é hora de instalar Psycopg2 Módulo Python.
Se você estiver usando o Python 3, execute o seguinte comando para instalar Psycopg2:
$ PIP3 Instale Psycopg2-BinárioSe você estiver usando o Python 2, execute o seguinte comando para instalar Psycopg2:
$ pip install psycopg2-binárioPsycopG2-Binário O módulo PIP deve ser instalado.
Criando o diretório do projeto:
Agora crie um diretório de projeto, Pyapp com o seguinte comando:
$ mkdir pyappE navegue até o diretório com o seguinte comando:
$ CD PyappÉ aqui que vou criar todo o script python para acessar o banco de dados PostgreSQL.
Conectando -se ao banco de dados PostGresql:
Primeiro, crie um programa Python conectar.py No seu diretório de projeto.
Agora digite as seguintes linhas e salve o arquivo.
Agora execute o script Connect.PY com um dos seguintes comando:
Para Python 3:
$ python3 Connect.pyPara Python 2:
$ python Connect.pyComo você pode ver, estou conectado ao banco de dados.
Aqui na linha 1, o Psycopg2 módulo é importado. Na linha 4, Psycopg2.conectar() O método é usado para conectar -se ao banco de dados PostGresql. A Try-exceto O bloco é usado para capturar erros se, caso algo der errado e a conexão com o banco de dados falhe.
Executando comandos SQL:
Nesta seção, vou criar uma tabela simples Usuários usando python Psycopg2
Digite o código a seguir para um novo script python criar a tabela.py e salve.
Agora execute o script:
$ python3 create_table.pyComo você pode ver, a mesa Usuários é criado.
Com PsycopG2, se você deseja executar um comando SQL, primeiro você deve criar um cursor.
Na linha 9, criei um cursor com Conn.cursor() método e o armazenou para cur variável. Aqui Conn é a variável em que eu armazenei a conexão do banco de dados de Psycopg2.conectar() método.
Então você executa o comando SQL com o cursor como cur.EXEC ("Your_sql_Goes_Hhere"), que eu fiz na linha 12-17 para criar um Usuários mesa.
Se o seu comando SQL fizer alterações no banco de dados ao qual você está conectado, você terá que ligar Conn.comprometer-se() Método para tornar as mudanças permanentes como eu fiz na linha 19.
Inserindo dados no banco de dados PostGresql:
Agora que você tem Usuários Tabela pronta, vamos inserir alguns dados na tabela.
Crie uma nova inserção de arquivo.PY no diretório do seu projeto e digite os seguintes códigos e salve o arquivo.
Agora execute o script python inserir.py do seguinte modo:
$ python3 Inserir.pyOs dados devem ser inseridos.
Como você pode ver no terminal PostGresql.
Na inserção.script py, linha 12 curva.o método Execute () executa a consulta SQL para inserir no Usuários mesa. O %ssão substituídos pelas cordas da tupla, o segundo parâmetro do cur.executar() método.
A primeira ocorrência de %s é substituído pelo primeiro elemento da tupla, o segundo %s é substituído pelo segundo elemento da tupla e assim por diante. Você também pode misturar tipos de dados se quiser. Por exemplo, %d representa o número inteiro.
Buscando dados do banco de dados PostGresql:
Agora você pode buscar os dados que você inseriu no banco de dados PostGresql.
Primeiro crie um novo script python buscar.py e digite as seguintes linhas de código. Em seguida, salve o arquivo.
Agora execute a busca do script.PY com o seguinte comando:
$ python3 busca.pyComo você pode ver, os dados que inseri são buscados. Ele voltou como uma tupla, que é como uma matriz.
No buscar.py script, tudo é semelhante ao de outros scripts. Aqui, cur.FetchOne () O método é usado para retornar a primeira linha da tabela. Se você tem muitas linhas, pode continuar ligando cur.FetchOne () para itera através da lista. Quando todas as linhas são devolvidas, cur.FetchOne () retornará Nenhum.
Obrigado por ler este artigo.