Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
projeto-integrador-crud-fazenda
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
2024105070039
projeto-integrador-crud-fazenda
Commits
5145dc3a
Commit
5145dc3a
authored
Apr 16, 2026
by
Tiago da Silva Sabaini
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ajustando app.py -2
parent
ad2ba986
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
37 additions
and
3 deletions
+37
-3
app.py
app.py/app.py
+37
-3
No files found.
app.py/app.py
View file @
5145dc3a
import
os
from
flask
import
Flask
,
render_template
,
request
,
redirect
,
url_for
from
models
import
db
,
Animal
app
=
Flask
(
__name__
)
app
.
config
[
'SQLALCHEMY_DATABASE_URI'
]
=
'sqlite:///fazenda.db'
# Configuração do caminho do banco de dados
basedir
=
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
))
app
.
config
[
'SQLALCHEMY_DATABASE_URI'
]
=
'sqlite:///'
+
os
.
path
.
join
(
basedir
,
'fazenda.db'
)
app
.
config
[
'SQLALCHEMY_TRACK_MODIFICATIONS'
]
=
False
# Inicializa o banco de dados com o app
db
.
init_app
(
app
)
# Cria
r o banco de dados antes da primeira requisição
# Cria
as tabelas no banco de dados caso não existam
with
app
.
app_context
():
db
.
create_all
()
# --- ROTAS DO SISTEMA ---
@app.route
(
'/'
)
def
index
():
"""Rota principal que lista todos os animais cadastrados."""
animais
=
Animal
.
query
.
all
()
return
render_template
(
'index.html'
,
animais
=
animais
)
@app.route
(
'/cadastrar'
,
methods
=
[
'POST'
])
def
cadastrar
():
"""Rota para processar o formulário de cadastro."""
nome
=
request
.
form
.
get
(
'nome'
)
especie
=
request
.
form
.
get
(
'especie'
)
idade
=
request
.
form
.
get
(
'idade'
)
peso
=
request
.
form
.
get
(
'peso'
)
novo_animal
=
Animal
(
nome
=
nome
,
especie
=
especie
,
idade
=
idade
,
peso
=
peso
)
# Validação básica e conversão de tipos
if
nome
and
especie
and
idade
and
peso
:
try
:
novo_animal
=
Animal
(
nome
=
nome
,
especie
=
especie
,
idade
=
int
(
idade
),
peso
=
float
(
peso
)
)
db
.
session
.
add
(
novo_animal
)
db
.
session
.
commit
()
except
ValueError
:
# Caso o peso ou idade não sejam números válidos
print
(
"Erro na conversão de valores."
)
return
redirect
(
url_for
(
'index'
))
@app.route
(
'/excluir/<int:id>'
)
def
excluir
(
id
):
"""Rota para remover um animal (Bônus para o projeto)."""
animal
=
Animal
.
query
.
get_or_404
(
id
)
db
.
session
.
delete
(
animal
)
db
.
session
.
commit
()
return
redirect
(
url_for
(
'index'
))
if
__name__
==
'__main__'
:
# Roda o servidor em modo debug para facilitar o desenvolvimento
app
.
run
(
debug
=
True
)
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment