Tutoriales Cursos para profesores Centros Donaciones
Servidor web con Flask en Python
Programación en Python para crear un servidor web en Python con
Flask
Tutoriales > Servidor web con Flask en Python
Etiquetas: Electrónica Programación Raspberry Pi Python Secundaria Bachillerato Raspbian
Introducción
En este tutorial vamos a explicar cómo montar un servidor web para Python con Flask en nuestra
Raspberry Pi.
Antes de empezar
Para este tutorial vas a necesitar los siguientes componentes:
• Raspberry Pi con Raspbian
Tutoriales Cursos para profesores Centros Donaciones
Es recomendable acceder a los siguientes tutoriales:
• Aprender a programar en Python en AprendeProgramando
Servidor Web con Flask
Flask es un microframework creado para facilitar el desarrollo de aplicaciones web en Python. Es utilizado
normalmente para construir servicios web como APIs REST o aplicaciones de contenido estático.
Servidor Web con Flask
Tutoriales Cursos para profesores Centros Donaciones
Instalar Flask
Antes de instalar cualquier software es conveniente actualizar la Raspberry Pi como se explica en el tutorial
Raspberry Pi - Raspbian - Update
Una vez actualizada instalamos el servidor de Flask para Python 3.
pi@raspberrypi:~ $ sudo apt install python3-flask
Hola Mundo
El primer ejemplo que vamos a crear es el típico "Hola Mundo", es decir, vamos a crear un servicio o ruta
para que al acceder a una determinada URL se muestre por la pantalla dicho mensaje. Para ello, vamos a
crear dentro del directorio web creado en nuestra carpeta del escritorio, un fichero llamado [Link] con
el siguiente código en Python.
├ web/
└── [Link]
Tutoriales Cursos para profesores Centros Donaciones
Python
from flask import *
app = Flask(__name__)
@[Link]('/')
def home():
return '¡Hola Mundo!'
if __name__ == '__main__':
[Link](host='[Link]', port=8000, debug=True)
Como hemos dicho, Flask se utiliza para servicios o rutas, en este caso, hemos creado el servicio sobre la
URL principal @[Link]('/') seguido de la función que ejecutará el servicio, en este caso, devolver el
mensaje 'Hola Mundo' que será mostrado por la pantalla al ejecutar el código y acceder mediante el
navegador a la dirección localhost:8000 . También podrás acceder sobre la propia IP
[Link] en un dispositivo situado en la misma red.
URL: localhost:8000
Tutoriales Cursos para profesores Centros Donaciones
Hola Mundo
Añadir un template HTML
En ocasiones nos vemos en la necesidad de generar el código HTML como fichero externo para mostrar
una web con su estructura en HTML, código CSS y JS, etc. Para ello debemos renderizar el template en la
función y crear un fichero dentro de una carpeta llamada templates . Dentro de esta crearemos el fichero
con el código HTML, por ejemplo [Link] .
├ web/
├── templates
│ └── [Link]
└── [Link]
Tutoriales Cursos para profesores Centros Donaciones
Python
from flask import *
app = Flask(__name__)
@[Link]('/')
def home():
return render_template('[Link]')
if __name__ == '__main__':
[Link](host='[Link]', port=8000, debug=True)
HTML
<html>
<head>
<title>Hola Mundo</title>
</head>
<body>
<h1>¡Hola Mundo!</h1>
</body>
</html>
URL: localhost:8000
Tutoriales Cursos para profesores Centros Donaciones
Template
Añadir otra ruta
De momento solamente estamos accediendo a la ruta principal / . Supongamos que queremos acceder a
otra ruta /quien-soy donde se muestra información adicional. En este caso necesitamos añadir una
nueva función al fichero principal de nuestra aplicación así como un nuevo template donde mostrar dicha
información.
├ web/
├── templates
│ ├── [Link]
│ └── [Link]
└── [Link]
Tutoriales Cursos para profesores Centros Donaciones
Python
from flask import *
app = Flask(__name__)
@[Link]('/')
def home():
return render_template('[Link]')
@[Link]('/quien-soy')
def quien():
return render_template('[Link]')
if __name__ == '__main__':
[Link](host='[Link]', port=8000, debug=True)
HTML
<html>
<head>
<title>Quien soy</title>
</head>
<body>
<h1>Hola me llamo Migue</h1>
<a href="/">Al hacer clic aquí te lleva al home</a>
</body>
</html>
Tutoriales Cursos para profesores Centros Donaciones
URL: localhost:8000/quien-soy
Rutas
Pasar parámetros al template
En ocasiones nos gustaría pasar parámetros desde el código principal al template. Para ello, al renderizar
el template tenemos que añadirle un array con los valores que serán leídos en el HTML.
Python
Tutoriales Cursos para profesores Centros Donaciones
from flask import *
app = Flask(__name__)
@[Link]('/')
def home():
templateData = {
'titulo' : 'Hola Mundo',
'numero' : 5
return render_template('[Link]', **templateData)
if __name__ == '__main__':
[Link](host='[Link]', port=8000, debug=True)
HTML
<html>
<head>
<title>Hola Mundo</title>
</head>
<body>
<p>Si la variable número "{{ numero }}" es igual a 5 se mostrará el título a continuación.</p>
{% if numero == 5 %}
<h1>Se muestra: {{ titulo }}</h1>
{% else %}
<h1>NO se muestra: {{ titulo }}</h1>
{% endif %}
</body>
</html>
Tutoriales Cursos para profesores Centros Donaciones
URL: localhost:8000
Paso de parámetros
Ejercicios propuestos
1.- Crea una sencilla página web con 2 enlaces como se explica en el tutorial.
Contribuciones Tutoriales Cursos para profesores Centros Donaciones
¿Has encontrado algún error en el contenido?
Edita
esta página
en GitHub y aparecerás en este apartado.
migueabellan
Última actualización: 26 octubre, 2019
Lecciones
Introducción
Instalar Flask
Hola Mundo
Añadir un template HTML
Añadir otra ruta
Pasar parámetros al template
Ejercicios propuestos
Tutoriales relacionados
Tutoriales Cursos para profesores Centros Donaciones
Control de GPIO con Flask en Python Controlar los pines GPIO a través de un servidor web en Python.
Conectando Raspberry Pi y Arduino con PySerial Enviando datos desde Raspberry Pi a Arduino a través del Serial.
Tutoriales Cursos para profesores Centros Donaciones
Síguenos
Asociación
Nosotros
Blog
Contacto
Proyectos educativos
Tutoriales
Cursos para profesores
Extraescolares
A menos que se especifique lo contrario todos los contenidos de este proyecto están bajo una licencia de Creative Commons Reconocimiento CompartirIgual 4 0
A menos que se especifique lo contrario, todos los contenidos de
este proyecto están bajo una licencia de
Creative Commons Reconocimiento-CompartirIgual 4.0
Internacional.
Tutoriales Cursos para profesores Centros Donaciones
Cambia al tema oscuro
This project is Open Source on
GitHub
and made with ♥ by
@migueabellan
2015-2022 Asociación Programo Ergo Sum