Este ejemplo muestra cómo definir rutas en Flask y cómo acceder a ellas mediante una barra de navegación utilizando la función url_for().
Estructura del Proyecto
/flask_app
/static
/css
style.css
/templates
base.html
home.html
about.html
app.py app.pyEste archivo define las rutas de la aplicación.
from flask import Flask, render_template
app = Flask(__name__)
# Ruta para la página de inicio
@app.route('/')
def home():
return render_template('home.html')
# Ruta para la página "Acerca de"
@app.route('/about')
def about():
return render_template('about.html')
if __name__ == '__main__':
app.run(debug=True, port=5000) Este archivo es la plantilla base que será extendida por otras páginas, que incluye la barra de navegación.
templates/base.html<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body>
<header>
<h1>Mi Aplicación Flask</h1>
<div class="navbar">
<a href="/" class="navbar-brand">Hello Flask</a>
<a href="{{ url_for('home') }}" class="navbar-item">Inicio</a>
<a href="{{ url_for('about') }}" class="navbar-item">Acerca de</a>
</div>
</header>
<main>
{% block content %}{% endblock %}
</main>
</body>
</html> templates/home.htmlEste es el contenido para la página de inicio.
{% extends 'base.html' %}
{% block title %}Inicio{% endblock %}
{% block content %}
<h2>Bienvenido a la Página de Inicio</h2>
<p>Esta es la página principal de nuestra aplicación Flask.</p>
{% endblock %} templates/about.htmlEste es el contenido para la página “Acerca de”.
{% extends 'base.html' %}
{% block title %}Acerca de{% endblock %}
{% block content %}
<h2>Sobre Nosotros</h2>
<p>Esta es la página "Acerca de" en nuestra aplicación Flask.</p>
{% endblock %} static/css/style.cssEste es un ejemplo de un archivo CSS simple para darle estilo a nuestra aplicación y ala barra de navegación.
* {
margin:0;
padding:0;
}
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
}
header {
background-color: #333;
color: white;
padding: 10px;
text-align: center;
}
.navbar {
display: flex;
justify-content: center;
margin: 10px 0;
}
.navbar a {
color: white;
padding: 10px 20px;
text-decoration: none;
margin: 0 10px;
background-color: #555;
border-radius: 5px;
}
.navbar a:hover {
background-color: #777;
}
h2 {
color: #333;
} python app.py Ahora podrás navegar entre la página de Inicio y la página Acerca de usando la barra de navegación.