[Python] Erro de requisição AJAX com Flask em projeto pessoal

Discussão em 'Python' iniciado por Stack, Setembro 30, 2024.

  1. Stack

    Stack Membro Participativo

    Fala galera, esses dias estava finalizando um projeto e ao entrar numa funcionalidade me deparei com um erro que não consegui sair. Estou usando Flask como servidor rodando na porta 5500, criei uma função e umas rotas para processar um carrinho de compras, onde ele encontra o produto no arquivo.txt, onde estou guardando os produtos e seu preço, e faz um resumo do carrinho para pagar, mais ou menos assim:

    Função para buscar o preço do produto no arquivo .txt


    def buscar_preco(nome_produto): with open('produtos.txt', 'r') as arquivo: produtos = arquivo.readlines() for produto in produtos: dados = produto.strip().split(';') # Ajuste de separador para ponto e vírgula nome, preco = dados[0], float(dados[1]) if nome == nome_produto: return preco return None

    Rota para obter o preço do produto


    @app.route('/obter_preco', methods=['GET']) def obter_preco(): nome_produto = request.args.get('nome_produto')

    try:
    with open('produtos.txt', 'r') as arquivo:
    for linha in arquivo:
    dados = linha.strip().split(';') # Ajuste de separador para ponto e vírgula
    if dados[0].strip() == nome_produto:
    preco = float(dados[1].strip())
    return jsonify({'preco': preco}), 200
    return jsonify({'error': 'Produto não encontrado'}), 404
    except Exception as e:
    return jsonify({'error': str(e)}), 500

    Rota para finalizar a compra


    @app.route('/finalizar_compra', methods=['POST']) def finalizar_compra(): dados_carrinho = request.get_json() carrinho = dados_carrinho.get('carrinho', [])

    if not carrinho:
    return jsonify({'status': 'error', 'message': 'Carrinho vazio'}), 400

    vendas_realizadas = []
    for item in carrinho:
    nome_produto = item['nome_produto']
    quantidade = int(item['quantidade'])
    metodo_pagamento = item['pagamento']

    produto = next((p for p in Produto.carregar_produtos() if p.nome == nome_produto), None)
    if produto and int(produto.estoque) >= quantidade:
    produto.estoque = str(int(produto.estoque) - quantidade)
    produto.salvar()
    valor_venda = float(produto.preco) * quantidade
    venda_info = {
    "nome_produto": nome_produto,
    "quantidade": quantidade,
    "metodo_pagamento": metodo_pagamento,
    "valor": valor_venda
    }
    Venda.vendas_dia.append(venda_info)
    vendas_realizadas.append(venda_info)
    else:
    return jsonify({'status': 'error', 'message': f'Estoque insuficiente para {nome_produto}.'}), 400

    return jsonify({'status': 'success', 'message': 'Compra finalizada com sucesso!', 'vendas_realizadas': vendas_realizadas}), 200


    Porém ao fazer a requisição, aparece esse erro na DevTool jquery-3.6.0.min.js:2

    GET http://localhost:5500/obter_preco?nome_produto=Banana 404 (Not Found)


    o que pode ser? to tendo um piripaque º-º

    Continue reading...

Compartilhe esta Página