
Notas en el uso del framework para el desarrollo web con Python.
Índice
- Introducción
- Elementos básicos
- Herramientas
- Instalación
- Acerca de las rutas
- Métodos HTTP
- Variables en rutas y valores por defecto
- Cadenas de consulta
- Métodos y datos de formularios
- Redireccionamiento
- Configuración
- Sesiones
- Depuración
- Plantillas
Introducción
Estas notas surgieron de la necesidad de aprender este framework para el desarrollo de aplicaciones web usando Python (inicialmente por un proyecto de la SEPI de la UPIICSA; posteriormente por otros de naturaleza profesional)
Elementos básicos
Herramientas
Para un proyecto de desarrollo web, muchas herramientas pueden ser usadas, no necesariamente las aquí indicadas. Esta lista enumera solamente las usadas en las descripciones o explicaciones presentadas en esta página.
- Una herramienta de edición de código (puede ser un editor de textos ASCII como son el Block de Notas de Windows o el Text Edit de macOS, pero preferiblemente uno específico para escritura de código como Vim, VSCode o PyCharm).
- Una versión reciente del intérprete de Python.
- Flask, que en realidad es un paquete de Python.
- Idealmente, mas no necesario, un administrador de ambientes de desarrollo para Python como Conda.
- Postman.
Instalación
La instalación de Flask es relativamente sencilla. Justo como cualquier otro paquete de Python. Antes de proceder con ésta, lo más recomendable es crear un entorno virtual de desarrollo y dentro de éste proceder con la instalación de Flask.
$ pip install flask
Validación
Conviene comprobar si la aplicación ha sido correctamente instalada, pese a que el proceso del instalación indique que así ha ocurrido. Esto puede hacerse invocando a la aplicación principal:
$ flask
que deberá regresar lo que se despliega cuando se invoca con la opción --help
, o mediante un pequeño programa como el siguiente, que sirve para ilustrar un poco la forma como se crea una aplicación con Flask.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello world</h1>'
Ejemplo
Tomando el código de la sección anterior, guardado en un archivo de nombre prog.py
, se invoca desde Flask con:
$ flask --app prog.py run
que activará un servidor web local que aceptará solicitudes, por ejemplo desde un browser, con el URL http://localhost:5000
o http://127.0.0.1:5000
.
El uso del parámetro --app
puede evitarse declarando una variable de sesión con el nombre del programa, por ejemplo:
$ FLASK_APP=app.py
para invocarse a ésta con sólo:
$ flask run
Otra forma es llamar directamente a la aplicación es desde el intérprete de Python, pero esto requiere un par de líneas de código más para quedar:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello world</h1>'
if __name__ == '__main__':
app.run()
y así poderse invocar:
$ python app.py
Acerca de las rutas
Las rutas (routes) son aquellos elementos que componen el URL al que se accede que siguen al nombre de dominio. Las rutas se asocian con funciones definidas por el usuario (UDF, por las siglas en inglés) de Python antecediendo a éstas en un a línea previa com el decorador @app.route()
. A las funciones se les puede declarar cuanta ruta sea necesaria antecediéndolas a su definición.
Métodos HTTP
Por defecto las funciones asociadas al decorador de las rutas aceptan el método GET. El resto de los métodos del protocolo HTTP (POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LINK, UNLINK, PURGE, LOCK, UNLOCK, PROPFIND y VIEW) deben ser declarados con el parámetro methods
y una lista de los nombres de os métodos que se manejarán.
Variables en rutas y valores por defecto
En la declaración de la ruta es posible indicar porciones de la ruta que deben ser tomadas como variables.
Cadenas de consulta
Métodos y datos de formularios
Redireccionamiento
Configuración
Sesiones
Depuración
Referencias
- «Flask Project Web Site«, Pallets Projects, web. Visited: . URL: https://flask.palletsprojects.com/.
|
© Todos los derechos reservados. Dr. Eduardo René Rodríguez Avila |
Creación: 2022.05.27 Última actualización: 2022.09.03 |
|||
El contenido de este sitio puede ser copiado y reproducido libremente mientras no sea alterado y se cite su origen. Marcas y productos registrados son citados por referencia y sin fines de lucro o dolo. Todas las opiniones son a título personal del o los autores de éstas y, salvo sea expresado de otro modo, deben considerarse como registro y expresión de la experiencia de uso de aquello que es tratado. Para conocer más sobre la posición de privacidad y responsabilidad de lo que se presenta en este sitio web y como ha sido obtenido, consulte la declaración al respecto. |