Consulta de CEP em Python com PySimpleGUI – Parte 2

Posted by


Parte 2: Integrando a API de consulta de CEP com a interface gráfica utilizando PySimpleGUI

Nesta parte do tutorial, vamos aprender como integrar a API de consulta de CEP com uma interface gráfica criada utilizando a biblioteca PySimpleGUI em Python. Vamos utilizar a mesma API de consulta de CEP do tutorial anterior, que retorna informações como logradouro, bairro, cidade e estado quando um CEP é informado.

Passo 1: Criando a interface gráfica utilizando PySimpleGUI

Para criar a interface gráfica, vamos utilizar o seguinte código em Python:

import PySimpleGUI as sg

layout = [
    [sg.Text('Digite o CEP que deseja consultar:')],
    [sg.InputText(key='cep')],
    [sg.Button('Consultar')],
    [sg.Text('Resultado da consulta:')],
    [sg.Text(size=(50, 1), key='result')]
]

window = sg.Window('Consulta de CEP', layout)

while True:
    event, values = window.read()

    if event == sg.WIN_CLOSED:
        break

    if event == 'Consultar':
        cep = values['cep']
        # Chamar a função de consulta de CEP aqui e exibir o resultado na interface
        result = f'Logradouro: {endereco["logradouro"]}n'
        result += f'Bairro: {endereco["bairro"]}n'
        result += f'Cidade: {endereco["cidade"]}n'
        result += f'Estado: {endereco["estado"]}'
        window['result'].update(result)

window.close()

Este código cria uma janela com um campo de entrada para o usuário digitar o CEP que deseja consultar e um botão para realizar a consulta. O resultado da consulta será exibido logo abaixo, onde as informações de logradouro, bairro, cidade e estado serão mostradas.

Passo 2: Integrando a API de consulta de CEP com a interface gráfica

Agora precisamos fazer a integração da API de consulta de CEP com a interface gráfica. Vamos utilizar a mesma função consultar_cep do tutorial anterior, que faz a requisição para a API e retorna as informações do endereço.

Aqui está o código da função consultar_cep que será utilizada:

import requests

def consultar_cep(cep):
    url = f'https://viacep.com.br/ws/{cep}/json/'

    response = requests.get(url)
    data = response.json()

    if 'erro' not in data:
        endereco = {
            'logradouro': data['logradouro'],
            'bairro': data['bairro'],
            'cidade': data['localidade'],
            'estado': data['uf']
        }

        return endereco

    return None

Agora, podemos chamar a função consultar_cep no evento de clique do botão ‘Consultar’ na interface gráfica para exibir o resultado da consulta ao usuário. Basta adicionar o seguinte código no evento de clique do botão ‘Consultar’:

if event == 'Consultar':
    cep = values['cep']
    endereco = consultar_cep(cep)

    if endereco:
        result = f'Logradouro: {endereco["logradouro"]}n'
        result += f'Bairro: {endereco["bairro"]}n'
        result += f'Cidade: {endereco["cidade"]}n'
        result += f'Estado: {endereco["estado"]}'
        window['result'].update(result)
    else:
        window['result'].update('CEP não encontrado')

Dessa forma, quando o usuário clicar no botão ‘Consultar’, o programa irá chamar a função consultar_cep com o CEP informado e exibir o resultado na interface gráfica. Se o CEP não for encontrado, será exibida uma mensagem informando ao usuário.

Com isso, a integração da API de consulta de CEP com a interface gráfica utilizando PySimpleGUI está completa. Agora você pode realizar consultas de CEP de forma simples e prática em Python, com uma interface gráfica intuitiva e amigável.

Espero que este tutorial tenha sido útil e que você tenha aprendido a criar interfaces gráficas e integrar APIs em seus projetos em Python. Divirta-se codando!

0 0 votes
Article Rating

Leave a Reply

6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@rodrigoleite8239
2 hours ago

Show de Bola..
vê se vc consegue mostrar um que cadastrar clientes.

@rodrigoleite8239
2 hours ago

da hora, só faltou você falar no vídeo.

@curiosidadeInfini
2 hours ago

Cara interessante mais o meu código aqui não consegui rodar ele da erro na função tela_inicial()

@thiagodfs81
2 hours ago

Massa… Vou tentar replicar aqui!

@CarlosEduardo-qh1ly
2 hours ago

Muito bom, finalmente vou conseguir essa API facilmente, video muito didáctico. Obrigado!!!

@fabianoaq4777
2 hours ago

vídeo excelente !!! adorei

6
0
Would love your thoughts, please comment.x
()
x