BorrowBits
Portada » Blog » Computación » Programación » Cómo detectar un dispositivo móvil en Django con Mobi

Cómo detectar un dispositivo móvil en Django con Mobi

Django python mobile móvil
Esta NO es la forma correcta de detectar un móvil con Django…

Cuando estamos programando una aplicación web es probable que necesitemos distinguir si el usuario se conecta desde su dispositivo móvil (tablet, smartphone, iphone, etc) o desde un PC. En función de ello podremos segmentar operaciones y vistas.

En Django existen múltiples formas de hacerlo. La más básica consistiría en extraer el Cliente de Usuario (User-Agent)  y cotejarlo. Demasiado tedioso.

La mejor opción desde mi punto de vista es utilizar un middleware llamado django-mobi.

En Django, un middleware no es más que una especie de plugin escrito en Python que realiza ciertas tareas de bajo nivel sin que el programador tenga que esforzarse demasiado. Lo que en mi pueblo denominan «framework».

Como decía, Mobi permite detectar teléfonos móviles, tablets y pantallas pequeñas de forma muy sencilla.

Instalación paso a paso

1) Descargar el paquete django-mobi disponible aquí.

2) Descomprimir la carpeta Mobi en la raíz de nuestro proyecto.

3) Localizar en el archivo de configuración settings.py la tupla de middlewares

MIDDLEWARE_CLASSES

y añadir la siguiente línea (ojo con respetar la sintaxis):

(...,
mobi.MobileDetectionMiddleware,)

4) Importar dentro del archivo views.py o en la vista necesaria.

Ya está. Ahora veremos algunos casos de uso:

Distinción simple entre móvil, tablet y PC

Tan sencillo como obtener una variable cuyo valor sea True si es un dispositivo móvil o False si es cualquier otro tipo de dispositivo. La mecánica es la siguiente:

1) Importamos el método necesario para este caso particular:

from mobi.decorators import detect_mobile

2) El contenido de request.mobile será True si el navegador del dispositivo que llama a la función es móvil, y viceversa.

@detect_mobile
def miDetector(request):
    if request.mobile:
        #Hacer cosas para dispositivos moviles
    else:
        #Hacer cosas para otros dispositivos

También hay una forma de distinguir entre tablet o móvil. Consiste en utilizar un request.tablet igual que anteriormente hicimos con request.mobile. Para ello es necesario incluir la siguiente variable en el archivo de configuración settings.py:

MOBI_DETECT_TABLET = True

Cómo redirigir automáticamente hacia una versión mobile

Nada más simple. Lo que hay que hacer es:

1) De nuevo, abrir el archivo settings.py y localizar la tupla:

MIDDLEWARE_CLASSES

2) Añadir la siguiente línea:

(...
mobi.MobileRedirectMiddleware,)

3) Añadir una nueva constante de configuración al mismo archivo settings.py:

MOBI_REDIRECT_URL = "http://URL.mobi"

Donde http://URL.mobi es la URL de la web a donde quieres redirigir en caso de detectar un dispositivo móvil.

Hasta aquí este minitutorial. No dudéis en preguntarnos cualquier cosa.

Angel H.

Tecnófilo irreparable y lector insaciable. Emigrante e inmigrante. Además de eso, Ingeniero de Telecomunicaciones y Product Manager. +10 años de experiencia en proyectos de Software, Cloud e Ingeniería de Redes. Me apasiona el DIY, la tecnología Blockchain y las Finanzas.

Un comentario

  • Información Bitacoras.com…

    Valora en Bitacoras.com: Esta NO es la forma correcta de detectar un móvil con Django… Cuando estamos programando una aplicación web es probable que necesitemos distinguir si el usuario se conecta desde su dispositivo móvil (tablet, smartphone, ……

Angel H.

Tecnófilo irreparable y lector insaciable. Emigrante e inmigrante. Además de eso, Ingeniero de Telecomunicaciones y Product Manager. +10 años de experiencia en proyectos de Software, Cloud e Ingeniería de Redes. Me apasiona el DIY, la tecnología Blockchain y las Finanzas.

Suscríbete

¡Sácale el máximo partido a BorrowBits!

Apúntate para seguir recibir por email las nuevas publicaciones, noticias sobre Blockchain pre-filtradas y material exclusivo para suscriptores. De momento es gratis:

{subscription_form_1}

Categorías

Bits del pasado

Sitio patrocinado por:

JitKey rentabilización apartamentos turísticos

JITKey.- Startup enfocada en la gestión de alojamientos turísticos.