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

[python]MIDDLEWARE_CLASSES[/python]

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

[python](…,
mobi.MobileDetectionMiddleware,)[/python]

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:

[python]from mobi.decorators import detect_mobile[/python]

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

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

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:

[python]MOBI_DETECT_TABLET = True[/python]

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:

[python]MIDDLEWARE_CLASSES[/python]

2) Añadir la siguiente línea:

[python](…
mobi.MobileRedirectMiddleware,)[/python]

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

[python]MOBI_REDIRECT_URL = "http://URL.mobi"[/python]

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.

Previous ¿Tienes una idea? Primero diseña tu modelo de negocio
Next 8 herramientas gratuitas para convertirte en un gurú de CSS3

About author

Angel
Angel 172 posts

Siempre quise ser inventor y escritor: por lo primero me hice ingeniero, y en cuanto a lo segundo, escribo aquí de vez en cuando sobre telecomunicaciones y tecnología. Me gustan los robots, los perretes y los libros (analógicos).

You might also like

Internet 1Comments

Developer Angel, una interesante forma de invertir en una Start-up

El otro día estuvimos charlando un buen rato con @miguelfc (CEO de Spiral Startups) sobre un problema muy recurrente a la hora de poner en marcha una empresa innovadora de base tecnológica:

Linux 1Comments

Protege tu conexión por SSH

Para conectaros a vuestro servidor virtual o a cualquiera que sea vuestro sistema Linux, es muy probable que utilicéis algún protocolo seguro como es SSH. Si lo hacéis a través

Tecnologia & Ciencia 1Comments

Solución: ¡Problemas con USB C200-1C26 en Windows 8!

¡AHHHH! ¡¿Que le pasa a este ordenador que no me funcionan los cascos ni el ratón de repente?! ¡Te juro que lo lanzo por la ventana! ¡Lo juro! ¿Nunca os

1 Comentario

  1. Bitacoras.com
    junio 27, 21:59 Reply

    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, ……

Deja un comentario