Como tengo algunos tiempo libres de descanso (de hacer proyectos o viciar un rato), me he decidido a escribir este articulo (o quizรก artรญculos) sobre el desarrollo web con Flask (Python). No me voy a detener a explicar que es Flask, eso ya lo explican en Hipertextual y lo explican muchรญsimo mejor que yo.
Instalaciรณn
A este punto (sea el sistema operativo que sea) ya deberรญamos tener instalado Python, asรญ que solo nos quedarรญa instalar Flask
$ sudo pip install Flask
Fรกcil, ยฟno?
Hola mundo
En Flask podemos crear el clรกsico ยซHola Mundoยป de la siguiente forma:
Solo guardamos nuestro cรณdigo como hello.py y lo ejecutamos
$ python hello.py
* Running on http://localhost:5000/
Ahora nuestra aplicaciรณn se esta ejecutando en http://localhost:5000/
Muy fรกcil, ยฟno?
Un blog sencillo
Paso 0: Creando las carpetas
Antes de empezar, necesitamos las siguientes carpetas para nuestra aplicaciรณn:
La carpeta Proyecto puede tener el nombre que quieras, es solo la carpeta donde tendrรกs tu aplicaciรณn. En la carpeta static estarรกn los ficheros disponibles a los usuarios via HTTP. Ese es el lugar donde debes colocar tus ficheros css y js. En la carpeta templates es donde estarรกn las platillas (el html5) de tu aplicaciรณn.
Paso I: Esquema de base de datos
Primero crearemos el esquema de base de datos. Para esta aplicaciรณn solo necesitaremos una base de datos. Solo introduce el siguiente cรณdigo en un fichero de nombre ยซschema.sqlยป en la carpeta Proyecto.
Este esquema conciste en una solo tabla llamada entradas y cada fila de esta tabla tiene un ID, un titulo y un texto. Este ID es un nรบmero entero incrementando de forma automรกtica y una clave principal, los otros dos son cadenas.
Paso II: Cรณdigo inicial de la aplicaciรณn
Ahora que tenemos el esquema podemos crear el mรณdulo de aplicaciรณn. Llamรฉmoslo flaskr.py, el cual tiene que estar dentro de la carpeta Proyecto. Para empezar vamos a aรฑadir los imports necesarios, asรญ como la secciรณn de configuraciรณn. En pequeรฑas aplicaciones podemos dejar la configuraciรณn directamente en el mรณdulo que vamos a hacer. Sin embargo, lo mejor y mas correcto serรญa la creaciรณn de un fichero de configuraciรณn .ini o .py, cargarlo e importar los valores desde allรญ.
En el fichero flaskr.py:
El secret_key es necesario para mantener las sesiones seguras. Elije sabiamente esta clave. El flag debug activa o desactiva el depurador interactivo. ยกNunca dejes el modo de depuraciรณn activado en un sistema de producciรณn, ya que permitirรก a los usuarios ejecutar cรณdigo en tu servidor!
Ahora podemos crear nuestra aplicaciรณn e iniciar con la configuraciรณn en flaskr.py :
Tambiรฉn vamos a aรฑadir un mรฉtodo para conectarse fรกcilmente a la base de datos especificada. Esto se puede utilizar para abrir una conexiรณn bajo peticiรณn. Esto serรก muy รบtil mรกs adelante.
Finalmente aรฑadimos una lรญnea al final del archivo que ejecutara el servidor si queremos ejecutar el archivo como una aplicaciรณn independiente:
Con eso debes ser capaz de poner en marcha la aplicaciรณn sin problemas. Ahora usamos el siguiente comando:
$ python flaskr.py
Veras un mensaje que indica que el servidor se ha iniciado junto con la URL.
Si accedemos a la URL nos darรก un error 404, ya que no tenemos una web todavรญa. Pero nos centraremos en eso un poco mรกs tarde. Primero debemos conseguir el funcionamiento de la base de datos.
Hola, gracias por el articulo. ยฟQue opinas sobre tener todas las routes juntas al estilo Django?. ยฟQue ventajas hay en tener el route por cada funncion al estilo de Express, Flask o Bottle?
No he probado Django (Matame si quieres) pero podrรญa decir que es por comodidad de quien programe. (Corriganme si me equivoco)
El articulo no esta terminado!! Quien se atreviรณ a postearlo?? D:
Se escapan errores ortogrรกficos como ยซconcisteยป, el mismo autor en su comentario dice ยซCorriganmeยป, serรญa bueno tener un corrector ortogrรกfico instalado y mirar las rayas rojas que salen bajo algunas palabras. Tambiรฉn es cierto que no ha terminado de escribirlo y por tanto de repasarlo.
Creo que no soy el รบnico que se ha quedado como un gilipollas buscando el botรณn siguiente… para pasar de pรกgina ยซo algoยป.
Ojala vengan mรกs, muy buen trabajo