Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
CRUD_Animais_da_Fazenda
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
7
Issues
7
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
Hiago Rafael
CRUD_Animais_da_Fazenda
Commits
ddfc894a
Commit
ddfc894a
authored
Apr 16, 2026
by
eduuu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FC eduuu
parent
645bb7ec
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
89 additions
and
7 deletions
+89
-7
app.py
app.py/app.py
+89
-7
No files found.
app.py/app.py
View file @
ddfc894a
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
.
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
():
db
.
create_all
()
# Isso cria o arquivo database.db pra você!
db
.
create_all
()
# --- ROTAS ---
@app.route
(
'/'
)
def
index
():
animais
=
Animal
.
query
.
all
()
return
render_template
(
'
lista
.html'
,
animais
=
animais
)
return
render_template
(
'
index
.html'
,
animais
=
animais
)
@app.route
(
'/cadastro'
)
def
cadastro
():
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
)
\ 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