¿Cómo se obtiene la IP del usuario con Flask?
Para entender cómo Flask maneja las solicitudes (requests) y respuestas (responses), primero necesitamos captar cómo le asigna datos al objeto request
. Este objeto es crucial porque contiene información sobre la solicitud, como la dirección IP del usuario. En un entorno de desarrollo local, esta IP será consistentemente "127.0.0.1", que es el host local. De este modo, aprendemos cómo obtener la dirección IP del usuario desde el objeto request
proporcionado por Flask.
¿Cómo acceder al objeto request en Flask?
Flask ofrece varios contextos y variables para extraer información sobre la solicitud. El objeto request
es el más utilizado para este fin. Dentro de este objeto, podemos encontrar la propiedad remote_addr
, que contiene la dirección IP del usuario.
Para usar remote_addr
, primero debemos importar request
de Flask:
from flask import Flask, request
A partir de ahí, podemos utilizar request.remote_addr
para obtener la dirección IP y almacenarla en una variable:
@app.route('/')
def index():
user_ip = request.remote_addr
return f'Tu dirección IP es: {user_ip}'
¿Cómo se formatea y muestra la dirección IP al usuario?
Después de obtener la IP, podemos usarla para personalizar la respuesta que el servidor devuelve al navegador del usuario. Podemos formatear un string que incluya la IP del usuario:
@app.route('/')
def index():
user_ip = request.remote_addr
return f'Tu dirección IP es: {user_ip}'
La IP del usuario se formatea en un mensaje sencillo que se devuelve al navegador, permitiendo que el usuario sepa qué dirección IP está siendo reconocida por la aplicación.
¿Qué sigue después de obtener la IP del usuario?
¿Cómo guardar la IP en una cookie?
En las próximas etapas del desarrollo, aprenderemos cómo crear un objeto response
en Flask y cómo almacenar la dirección IP en una cookie, en lugar de obtenerla directamente de request
. Esto es útil, ya que las cookies permiten persistir datos del usuario durante sesiones para mejorar la experiencia en el sitio web.
from flask import make_response
@app.route('/')
def index():
user_ip = request.remote_addr
response = make_response(f'Tu IP es: {user_ip}')
response.set_cookie('user_ip', user_ip)
return response
Guardando la IP del usuario en una cookie, es posible mantener un registro persistente de la dirección IP durante su sesión o incluso, para futuras visitas, hasta que la cookie expire o el usuario la elimine.
¡No te desanimes! Este es solo un pequeño vistazo al seguimiento en tiempo real de datos de usuarios en aplicaciones web, algo fundamental en el desarrollo web moderno. Cada paso en dominio de Flask y sus componentes te acercará a crear aplicaciones más robustas y personalizadas.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?