Commit ef031e74 by Ian Gustavo
parents c8d35925 1be6321e
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
import os
app = Flask(__name__)
# Configuração do Banco de Dados
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 ---
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))
with app.app_context():
db.create_all()
# --- ROTAS ---
@app.route('/')
def login():
return render_template('login.html')
@app.route('/catalogo')
def index():
animais = Animal.query.all()
# Verifique se seu arquivo se chama index.html ou lista.html
return render_template('index.html', animais=animais)
@app.route('/cadastro_animal', methods=['GET', 'POST'])
def cadastro_animal():
if request.method == 'POST':
novo = Animal(
nome=request.form['nome'],
especie=request.form['especie'],
idade=request.form['idade'],
peso=request.form['peso']
)
db.session.add(novo)
db.session.commit()
return redirect(url_for('index'))
return render_template('cadastro_animal.html')
@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')
@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'))
if __name__ == "__main__":
app.run(debug=True)
\ No newline at end of file
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Animal(db.Model):
__tablename__ = 'animais'
id = db.Column(db.Integer, primary_key=True)
nome = db.Column(db.String(100), nullable=False)
especie = db.Column(db.String(50), nullable=False)
idade = db.Column(db.Integer, nullable=False)
especie = db.Column(db.String(50), nullable=False) # Ex: Suíno
preco = db.Column(db.Float, nullable=False) # Preço de venda
fazenda = db.Column(db.String(100), nullable=False) # Quem está vendendo
peso = db.Column(db.Float, nullable=False)
\ No newline at end of file
from flask import Flask, render_template, request, redirect, url_for
from models import db, Animal
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
with app.app_context():
db.create_all() # Isso cria o arquivo database.db pra você!
@app.route('/')
def index():
animais = Animal.query.all()
return render_template('lista.html', animais=animais)
@app.route('/cadastro')
def cadastro():
return render_template('cadastro.html')
if __name__ == '__main__':
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