Flask es un framework web estupendo para la creación de aplicaciones web del lado del servidor con Python; si no tienes conocimientos en el uso de frameworks web del servidor con Python, Flask es un buen candidato para inciar; al ser un microframework, lo que significa que inicialmente trae lo mínimo necesario para poder funcionar, puedes ir viendo de a poco cómo funciona el framework sin dar cabida a confusiones con archivos, estructura de directorios o módulos que no haz colocado, como sucede con otros frameworks más robustos como Django, que al crear un proyecto en Django, cuenta con muchos archivos y carpetas.
Finalmente, es momento de crear el "Hola Mundo" con Flask; es decir, implementar lo mínimo necesario para poder ver algo por pantalla; así que, creamos un archivo dentro del proyecto (la carpeta tasks):
main.py
Con el siguiente código:
main.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world() -> str:
return 'Hello Flask!'
if __name__ == '__main__':
app.run()
El código anterior es una aplicación web completa basada en Flask, de aquí podemos entender el término de microframework que se denota a Flask, ya que, tiene lo mínimo necesario para poder funcionar, por lo tanto, una implementación mínima en Flask puede escribirse en pocas líneas de código; la aplicación anterior, simplemente mostrará "Hello Flask!" en el navegador.
Levantamos la aplicación con:
$ python main.py
Y en la terminal veremos algo como:
* Serving Flask app 'main'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Ahora, si navegamos a la ruta anterior:
http://127.0.0.1:5000.
Veremos un mensaje de
Hello Flask!
En la pantalla.
Analicemos un poco más en detalle el código anterior; mediante:
from flask import Flask
app = Flask(__name__)
Importamos la clase Flask, que es usada para crear una instancia, la llamada app y que desde la misma se puede realizar múltiples configuraciones a nivel del proyecto como la base de datos, envío de emails, ruteo entre otros, pero, de momento, solamente se emplea para crear una ruta:
@app.route('/')
Este decorador se emplea para que la función que decora, pueda ser consumida desde una petición HTTP mediante la ruta asociada; es decir, en este ejemplo, la ruta '/' se asigna a la función de vista hello_world().
Cuando un usuario accede a la ruta '/', Flask ejecutará la función hello_world() y devolverá la cadena de texto "Hello Flask!".
Finalmente, se ejecuta la aplicación con:
if __name__ == '__main__':
app.run()
El condicional anterior verifica si el módulo actual es el programa principal que se está ejecutando. Si es así, se ejecuta el código dentro del bloque de código if; que permite iniciar el servidor web que emplea Flask internamente: Werkzeug.
El condicional de if __name__ == '__main__': permite asegurar que el servidor solo se ejecute si el script se ejecuta directamente desde el intérprete de Python y no desde un módulo importado.
Puedes probar devolver un contenido HTML en vez de un texto como:
main.py
@app.route('/')
def hello_world():
return '<h1>Hello World!</h1>'
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter