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! 🌐✅
👨💻 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
Hola, cuando intento installar flask con pip install flask me figura requirement already satisfied
Me puedes ayudar con eso porfavor
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
hola me ayudas con un problemas, es que cuando añado los templates, mi pagina se queda en blanco no dice nada
como se aprende esos comando que escribe..o de donde los saco porque estoy perdido
no me deja conectarme con flask_mysqldb, pero cuando me conecto con import mysql.connector, si me conecta, a que se deve?
Hermano, Desarrolla aplicaciones Web 😔
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?
jaja tengo como proyecto final de semestre realizar una aplicación y todo esto es nuevo para mí. DDD:
Excelente Tutorial, he visto muchos, pero el tuyo es conciso y práctico. Te ganaste un suscriptor
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.
excelenteeeeee explicación!!
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.
Excelente tutorial muy bien hecho y explicado saludos
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
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
hola usko , cuando creas el manejo de errores pones el parametro error pero no la envias a ningun lado !!!
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
Muy buen video , Oscar !! hace tiempo que estaba alejado del desarrollo por mi trabajo. y ahora volví.. y encontré este video …. Abrazos.
Muchísimas gracias, aprendí demasiado!