Guía de Flask: El Framework de Python para Crear Aplicaciones Web 🌐 (Desde Cero) ✅

Posted by


Flask es un framework web ligero escrito en Python que se utiliza para desarrollar aplicaciones web rápidas y fáciles de mantener. En este tutorial, te enseñaremos cómo crear una aplicación web desde cero utilizando Flask.

Paso 1: Instalación de Flask
Lo primero que debes hacer es instalar Flask en tu sistema. Para hacerlo, puedes utilizar pip, el administrador de paquetes de Python. Abre una terminal y ejecuta el siguiente comando:

pip install Flask

Esto instalará Flask en tu sistema y podrás empezar a trabajar con él.

Paso 2: Creación de una aplicación Flask
Ahora que tienes Flask instalado, puedes crear una aplicación web básica. Para hacerlo, crea un nuevo archivo Python y escribe el siguiente código:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

Este código crea una instancia de la clase Flask y define una ruta (/) que devuelve el mensaje "Hello, World!". Luego, se inicia la aplicación.

Paso 3: Ejecución de la aplicación Flask
Para ejecutar la aplicación Flask, guarda el archivo con el nombre de app.py y ejecuta el siguiente comando en la terminal:

python app.py

Esto iniciará el servidor y podrás acceder a tu aplicación en http://localhost:5000.

Paso 4: Creación de rutas y vistas
Además de la ruta /, puedes definir más rutas y vistas en tu aplicación Flask. Por ejemplo, puedes crear una ruta que devuelva un mensaje diferente. Modifica tu archivo app.py de la siguiente manera:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

@app.route('/about')
def about():
    return 'This is an about page.'

if __name__ == '__main__':
    app.run()

Ahora, cuando accedas a http://localhost:5000/about, verás el mensaje "This is an about page." en tu navegador.

Paso 5: Plantillas y renderizado de HTML
En lugar de devolver texto plano en tus vistas, puedes utilizar plantillas de HTML para renderizar contenido dinámico. Flask incluye un motor de plantillas llamado Jinja2 que facilita este proceso. Crea una carpeta llamada templates en el mismo directorio que tu archivo app.py y agrega un archivo HTML llamado index.html con el siguiente contenido:

<!DOCTYPE html>
<html>
<head>
    <title>Flask Tutorial</title>
</head>
<body>
    <h1>Hello, World!</h1>
</body>
</html>

Luego, modifica tu archivo app.py para renderizar esta plantilla:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def hello_world():
    return render_template('index.html')

@app.route('/about')
def about():
    return 'This is an about page.'

if __name__ == '__main__':
    app.run()

Ahora, cuando accedas a http://localhost:5000, verás la página HTML renderizada en tu navegador.

Paso 6: Integración de bases de datos
Flask permite la integración con bases de datos para almacenar y recuperar datos en tu aplicación web. Puedes utilizar una base de datos SQLite para simplificar este proceso. Crea una nueva carpeta llamada database en el mismo directorio que tu archivo app.py y agrega un archivo llamado database.db. Luego, modifica tu archivo app.py para conectarte a la base de datos:

import sqlite3
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def hello_world():
    conn = sqlite3.connect('database/database.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM users')
    users = cursor.fetchall()
    conn.close()
    return render_template('index.html', users=users)

if __name__ == '__main__':
    app.run()

Este código consulta una tabla de usuarios en la base de datos y pasa los resultados a la plantilla HTML para ser renderizados.

Paso 7: Implementación de formularios
Para interactuar con tu aplicación web, puedes implementar formularios utilizando Flask-WTF, una extensión de Flask que facilita la creación de formularios en tus vistas. Primero, instala Flask-WTF ejecutando el siguiente comando en la terminal:

pip install Flask-WTF

Luego, agrega un nuevo archivo llamado forms.py en el mismo directorio que tu archivo app.py y agrega el siguiente código:

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField

class UserForm(FlaskForm):
    username = StringField('Username')
    submit = SubmitField('Submit')

Ahora, modifica tu archivo app.py para utilizar este formulario en tu aplicación:

import sqlite3
from flask import Flask, render_template
from forms import UserForm

app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecretkey'

@app.route('/', methods=['GET', 'POST'])
def hello_world():
    form = UserForm()
    if form.validate_on_submit():
        conn = sqlite3.connect('database/database.db')
        cursor = conn.cursor()
        cursor.execute('INSERT INTO users (username) VALUES (?)', [form.username.data])
        conn.commit()
        conn.close()
        return 'User created!'
    return render_template('index.html', form=form)

if __name__ == '__main__':
    app.run()

Ahora, cuando accedas a http://localhost:5000, verás un formulario donde puedes ingresar un nombre de usuario y crear un nuevo usuario en la base de datos.

Con estos pasos, has creado una aplicación web básica utilizando Flask desde cero. Puedes seguir explorando las diferentes funcionalidades y extensiones de Flask para crear aplicaciones más complejas. ¡Buena suerte! 🌐✅

0 0 votes
Article Rating
37 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@UskoKruM2010
1 month ago

👨‍💻 Te comparto más tutoriales y cursos GRATUITOS 🔽🔽🔽 :

SÍGUEME ✅ !

** Curso Udemy Bases de datos con MySQL: http://bit.ly/2vtrUg9

** INSTAGRAM: http://instagram.com/uskokrum2010

** FACEBOOK: http://facebook.com/UskoKruM2010

** TWITTER: http://twitter.com/uskokrum2010

** SITIO WEB: http://uskokrum2010.com

** GITHUB: http://github.com/UskoKruM

** SUSCRÍBETE: http://youtube.com/uskokrum2010

🔴 ¿Quieres aprender y conversar sobre programación? Únete a nuestro grupo de Telegram ▶ : https://t.me/uskokrum2010_yt

Otros Cursos GRATUITOS ✅ :

HTML: http://www.youtube.com/playlist?list=PL_wRgp7nihyZElF-6dkhPU_RetfSp99QN

PYTHON 3: https://www.youtube.com/playlist?list=PL_wRgp7nihybbJ2vZaVGI5TDdPaK_dFuC

DJANGO: https://www.youtube.com/playlist?list=PL_wRgp7nihyZsEnudJ-XUAEdnOGUojbnn

JAVA: http://www.youtube.com/playlist?list=PL_wRgp7nihyZ6hKPQcioxneVQ1aTuC4fS

SQL SERVER: http://www.youtube.com/playlist?list=PL_wRgp7nihyYXeXZhOiZqKpAdwIRM28Ui

C#: https://www.youtube.com/playlist?list=PL_wRgp7nihyYACu4RyZd0PxJUseQ2tQl8

PHP y MySQL: http://www.youtube.com/playlist?list=PL_wRgp7nihyYXMZ5bBP6v0Q31fRRJLiud

VISUAL BASIC .NET: http://www.youtube.com/playlist?list=PL_wRgp7nihybLjm19HvBxRDp-ZvyGEhdh

JAVASCRIPT: http://www.youtube.com/playlist?list=PL_wRgp7nihyYdnV6ilQcZsfdG5d2nGWkc

NODE.JS: https://www.youtube.com/playlist?list=PL_wRgp7nihybJkFgDxd-LBZgmSIVdy3rd

jQuery: https://www.youtube.com/playlist?list=PL_wRgp7nihyY020gyukDupJEJ84gimiPS

CÓMO EDITAR CON CAMTASIA STUDIO 8: https://www.youtube.com/playlist?list=PL_wRgp7nihyYSbQ7Vbwh5TFbM5nOgriAm

CÓMO USAR ZOOM PARA CLASES VIRTUALES: https://www.youtube.com/playlist?list=PL_wRgp7nihyaNTSqIvKvJtBA-6Qw-UKTU

@Bi-han123
1 month ago

Hola, cuando intento installar flask con pip install flask me figura requirement already satisfied

Me puedes ayudar con eso porfavor

@FRANCISCOJAVIERRODRIGUEZ-y2k
1 month ago

buenas noches dias, estoy iniciando crear la pag web con tu video, y te doy las gracias pñor tu aportacion. Desearia si dispones de un tutorial de pag web con annimaciones roboticas y de paisajes, te lo agradeceria, y si tiene alguna aportacion economica que hacer. Gracias

@NnachGX
1 month ago

hola me ayudas con un problemas, es que cuando añado los templates, mi pagina se queda en blanco no dice nada

@HUGOBARRIOS-jl1ds
1 month ago

como se aprende esos comando que escribe..o de donde los saco porque estoy perdido

@angeltwice
1 month ago

no me deja conectarme con flask_mysqldb, pero cuando me conecto con import mysql.connector, si me conecta, a que se deve?

@TutSanchezFelipeEsteban
1 month ago

Hermano, Desarrolla aplicaciones Web 😔

@emidiopineros8723
1 month ago

Muchas gracias por el video esta EXCELENTE!! Tienes los scripts de la creacion de la base de datos de prueba que muestras en tu video?

@lalawantsdied
1 month ago

jaja tengo como proyecto final de semestre realizar una aplicación y todo esto es nuevo para mí. DDD:

@henrycolque5908
1 month ago

Excelente Tutorial, he visto muchos, pero el tuyo es conciso y práctico. Te ganaste un suscriptor

@ingleonelelizondo
1 month ago

Que bien explicas. Desde ya tienes mi suscripción y campana. Pero tengo una pregunta sabes cómo puedo resolver esto. Intento de acceso a un socket no permitido por sus permisos de acceso estoy usando Windows 10 PRO. Por tu atención y tiempo gracias.

@neptusoneptuso8389
1 month ago

excelenteeeeee explicación!!

@TheLucska
1 month ago

Hola, estoy realizando un proyecto en un curso, y ya en la primera parte tengo un problema. El proyecto comienza de cero. Creo una carpeta, creo el entorno virtual, lo activo. Me pide que instale werkzeug: pip install werkzeug. Luego me pide que ejecute en la terminal flask init-db y me tira el siguiente error:
$ flask init-db

Error: Could not locate a Flask application. Use the 'flask –app' option, 'FLASK_APP' environment variable, or a 'wsgi.py' or 'app.py' file in the current directory.

Usage: flask [OPTIONS] COMMAND [ARGS]…

Try 'flask –help' for help.

Error: No such command 'init-db'.

No entiendo cual es mi error. Estoy en Windows, usando bash. Probe con Mac Os y me da el mismo error. Si alguien me puede guiar lo agradeceria mucho.

@kij0te
1 month ago

Excelente tutorial muy bien hecho y explicado saludos

@axelleyends
1 month ago

ADVERTENCIA: Este es un servidor de desarrollo. No lo utilice en una implementación de producción. Utilice en su lugar un servidor WSGI de producción. 6:46

@axelleyends
1 month ago

Creación de entorno virtual aqui en el tuyo automaticamente se pone el . al escribir el env y el mio nada como le hago y como activo el entorno si no me reconoce en que carpeta estoy

@javieralzu6071
1 month ago

hola usko , cuando creas el manejo de errores pones el parametro error pero no la envias a ningun lado !!!

@sergio7097
1 month ago

El video está muy bien explicado pero no me ha gustado nada que no crees la base de datos sino que de repente saques una ya preparada

@Fernando.Mastropietro
1 month ago

Muy buen video , Oscar !! hace tiempo que estaba alejado del desarrollo por mi trabajo. y ahora volví.. y encontré este video …. Abrazos.

@BLACKBIRDaxel
1 month ago

Muchísimas gracias, aprendí demasiado!