Commit ddfc894a by eduuu

FC eduuu

parent 645bb7ec
from flask import Flask, render_template, request, redirect, url_for from flask import Flask, render_template, request, redirect, url_for
from models import db, Animal from flask_sqlalchemy import SQLAlchemy
import os
app = Flask(__name__) app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app) # Configuração do Banco de Dados SQLite
project_dir = os.path.dirname(os.path.abspath(__file__))
database_file = "sqlite:///{}".format(os.path.join(project_dir, "fazenda.db"))
app.config["SQLALCHEMY_DATABASE_URI"] = database_file
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
# --- MODELOS (TABELAS) ---
class Animal(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(100), nullable=False)
especie = db.Column(db.String(100), nullable=False)
idade = db.Column(db.Integer, nullable=False)
peso = db.Column(db.Float, nullable=False)
class Pessoa(db.Model):
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(100), nullable=False)
idade = db.Column(db.Integer)
peso = db.Column(db.Float)
data_nascimento = db.Column(db.String(20))
sexo = db.Column(db.String(1))
# Cria o banco de dados automaticamente
with app.app_context(): with app.app_context():
db.create_all() # Isso cria o arquivo database.db pra você! db.create_all()
# --- ROTAS ---
@app.route('/') @app.route('/')
def index(): def index():
animais = Animal.query.all() animais = Animal.query.all()
return render_template('lista.html', animais=animais) return render_template('index.html', animais=animais)
@app.route('/cadastro') @app.route('/cadastro')
def cadastro(): def cadastro():
return render_template('cadastro.html') return render_template('cadastro.html')
if __name__ == '__main__': @app.route('/cadastrar', methods=['POST'])
def cadastrar():
if request.method == 'POST':
novo_animal = Animal(
nome=request.form['nome'],
especie=request.form['especie'],
idade=request.form['idade'],
peso=request.form['peso']
)
db.session.add(novo_animal)
db.session.commit()
return redirect(url_for('index'))
@app.route('/editar/<int:id>')
def editar(id):
animal = Animal.query.get(id)
# Como seu template de edição pede uma "pessoa", vamos buscar a primeira ou criar uma lógica simples
pessoa = Pessoa.query.first()
return render_template('editar.html', animal=animal, pessoa=pessoa)
@app.route('/atualizar/<int:id>', methods=['POST'])
def atualizar(id):
animal = Animal.query.get(id)
animal.nome = request.form['nome_animal']
animal.especie = request.form['especie_animal']
animal.idade = request.form['idade_animal']
animal.peso = request.form['peso_animal']
# Se houver lógica de pessoa no formulário, você atualizaria aqui também
db.session.commit()
return redirect(url_for('index'))
@app.route('/deletar/<int:id>')
def deletar(id):
animal = Animal.query.get(id)
db.session.delete(animal)
db.session.commit()
return redirect(url_for('index'))
# Rota adicional para o template de pessoa que você enviou
@app.route('/cadastro_pessoa', methods=['GET', 'POST'])
def cadastro_pessoa():
if request.method == 'POST':
nova_pessoa = Pessoa(
nome=request.form['nome'],
idade=request.form['idade'],
peso=request.form['peso'],
data_nascimento=request.form['data_nascimento'],
sexo=request.form['sexo']
)
db.session.add(nova_pessoa)
db.session.commit()
return redirect(url_for('index'))
return render_template('cadastro_pessoa.html')
if __name__ == "__main__":
app.run(debug=True) app.run(debug=True)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment