Isabell4souza / apw-1b2-a

repositório de códigos web da disciplina de apw da Etec Sylivio de Mattos Carvalho
MIT License
0 stars 0 forks source link

Construir uma função onde armazena as vagas #12

Open alexandrerazo opened 2 months ago

carolinaroncalho commented 2 months ago

Claro! Vou mostrar como construir uma função para armazenar vagas em um banco de dados usando Python e Flask, junto com SQLAlchemy para ORM (Object-Relational Mapping). A função permitirá adicionar novas vagas e armazená-las de forma eficiente.

1. Configuração do Ambiente

Certifique-se de ter Flask e SQLAlchemy instalados. Se ainda não tiver, instale-os com:

pip install Flask SQLAlchemy

2. Estrutura do Projeto

Crie um arquivo chamado app.py e configure seu ambiente de banco de dados e aplicação Flask.

3. Código para Armazenar Vagas

Aqui está um exemplo completo de como você pode definir uma função para armazenar vagas e configurar o Flask para lidar com essa funcionalidade:

app.py

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'  # SQLite como exemplo; ajuste conforme necessário
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

# Definição do modelo de Vaga
class Vaga(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    titulo = db.Column(db.String(100), nullable=False)

# Criar o banco de dados e a tabela, se não existirem
with app.app_context():
    db.create_all()

@app.route('/vagas', methods=['POST'])
def adicionar_vaga():
    data = request.get_json()
    titulo = data.get('titulo')

    if not titulo:
        return jsonify({'erro': 'Título da vaga é necessário'}), 400

    nova_vaga = Vaga(titulo=titulo)
    db.session.add(nova_vaga)
    db.session.commit()

    return jsonify({'id': nova_vaga.id, 'titulo': nova_vaga.titulo}), 201

@app.route('/vagas', methods=['GET'])
def listar_vagas():
    vagas = Vaga.query.all()
    resultado = [{'id': v.id, 'titulo': v.titulo} for v in vagas]
    return jsonify(resultado)

if __name__ == '__main__':
    app.run(debug=True)

Explicação do Código

  1. Configuração do Flask e SQLAlchemy:

    • app.config['SQLALCHEMY_DATABASE_URI'] define a URL de conexão com o banco de dados. Aqui, estamos usando SQLite para simplicidade.
    • db.create_all() cria as tabelas definidas pelos modelos, se ainda não existirem.
  2. Modelo Vaga:

    • A classe Vaga define a tabela de vagas no banco de dados com dois campos: id e titulo.
  3. Rota POST /vagas:

    • Recebe uma solicitação JSON contendo o título da vaga.
    • Verifica se o título está presente. Se não estiver, retorna um erro.
    • Cria uma nova entrada de vaga, adiciona ao banco de dados e confirma a transação.
  4. Rota GET /vagas:

    • Retorna uma lista de todas as vagas armazenadas no banco de dados.

Testar a Aplicação

  1. Inicie o servidor:

    python app.py
  2. Adicionar uma vaga: Você pode usar uma ferramenta como curl ou Postman para enviar uma solicitação POST com um corpo JSON. Exemplo com curl:

    curl -X POST http://127.0.0.1:5000/vagas -H "Content-Type: application/json" -d '{"titulo": "Desenvolvedor Frontend"}'
  3. Listar vagas: Para ver todas as vagas, faça uma solicitação GET:

    curl http://127.0.0.1:5000/vagas

Considerações Finais

Este exemplo básico configura um servidor Flask para adicionar e listar vagas usando um banco de dados SQLite. Dependendo das suas necessidades, você pode querer adicionar mais funcionalidades, como autenticação, validação de dados mais robusta, ou integração com outras partes do sistema. Se precisar de mais informações ou ajuda com outro aspecto, estou aqui para ajudar!