Se anexa el código fuente del ejercicio Crud con Flask y Python
Archivo app.py:
from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Frase(db.Model):
id=db.Column(db.Integer, primary_key= True)
title=db.Column(db.String(100))
complete=db.Column(db.Boolean)
@app.route('/')
def index():
#listar todos los registros
new_frase = Frase.query.all()
return render_template('index.html', new_frase = new_frase)
@app.route("/add", methods=["POST"])
def add():
#agregar un nuevo registro
title = request.form.get("title")
new_frase = Frase(title=title, complete=False)
db.session.add(new_frase)
db.session.commit()
return redirect (url_for("index"))
@ app.route ("/ update / <int: frase_id>")
def actualizar (frase_id):
#actualiar un registro
frase = Frase.query.filter_by (id = frase_id) .first ()
frase.complete = no frase.complete
db.session.commit ()
return redirect (url_for ("índice"))
@ app.route ("/ eliminar / <int: frase_id>")
def eliminar (frase_id):
#eliminar un registro
frase = Frase.query.filter_by (id = frase_id) .first ()
frase.complete = no frase.complete
db.session.delete (frase)
db.session.commit ()
return redirect (url_for ("índice"))
if __name__ == '__main__':
db.create_all ()
app.run (debug = True)
Codígo del archivo Index.html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Frases Celebres</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css">
<script src="https://cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.js"></script>
</head>
<body>
<div style="margin-top: 30px;" class="ui container">
<h1 class="ui center aligned header">Frases Celebres</h1>
<h2 class="ui center aligned header">Python - Flask - Sqlite - Semantic ui</h2>
<form class="ui form" action="/add" method="POST">
<div class="field">
<!--<label for="title">Frases Celebres</label> -->
<a class="ui orange ribbon label big header" for="title">Frases Celebres</a>
<input type="text" name="title" placeholder="Ingresa tu frase celebre...">
<br>
<button class="ui blue button" type="submit">Agregar</button>
</div>
</form>
{% for frase in new_frase %}
<div class="ui segment">
<p class="ui big header">{{ frase.id }} | {{ frase.title }}</p>
{% if frase.complete == False %}
<span class="ui gray label" >Incompleta</span>
{% else %}
<span class="ui green label">Completa</span>
{% endif %}
<a class="ui blue button" href="/update/{{ frase.id }}">Actualizar</a>
<a class="ui red button" href="/delete/{{ frase.id }}">Eliminar</a>
</div>
{% endfor %}
</div>
</body>
</html>
Puedes seguir el paso a paso en los siguientes videos:
Visita mi canal de youtube para mas contenido:
https://www.youtube.com/c/SilverioDelRosarioFernandezplusSilver
No hay comentarios.:
Publicar un comentario